Install MariaDB
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install mysql-server mysql-client
Connection to DB(initial)
$ sudo mysql -u root #initially connection available
mysql> USE mysql;
mysql> SELECT User, Host, plugin FROM mysql.user;
+------------------+-----------------------+
| User | plugin |
+------------------+-----------------------+
| root | auth_socket |
| mysql.sys | mysql_native_password |
| debian-sys-maint | mysql_native_password |
+------------------+-----------------------+
The plugin for root should be changed to
mysql_native_password for logging in.
mysql> update user set plugin='mysql_native_password' where user='root';
mysql> flush privileges;
mysql> select user, host, plugin from user;
ChangePassword
mysql> update user set password=password('1234') where user='root';
mysql> flush privileges;
Connection to DB with Password
$ sudo mysql -u root -p
External connection
$ cd /etc/mysql/mariadb.conf.d
$ sudo nano 50-server.cnf
change bind-address = 127.0.0.1 to #bind-address = 127.0.0.1
$ sudo service mysql restart
Permission external connection
mysql> grant all privileges on *.* to 'root'@'%' identified by ' PASSWORD'
Etc. command
$ sudo service mysql start
$ sudo service mysql stop
$ sudo service mysql restart
MySQL Command
mysql> show databases;
mysql> create database DBNAME;
mysql> drop database DBNAME;
mysql> use DBNAME;
mysql> show tables;
mysql> create table TABLENAME(COL1 TYPE1, COL2 TYPE2, .... );
mysql> desc TABLENAME;
mysql> alter table TABLENAME add COL1 type1;
mysql> alter table TABLENAME drop COL1;
mysql> alter table TABLENAME change column OLDCOL NEWCOL TYPE;
mysql> alter table TABLENAME modify column COL NEWTYPE;
mysql> alter table TABLENAME rename NEWTABLENAME;
mysql> drop table TABLENAME;
mysql> insert into TABLENAME values('VALUE', 'VALUE',...);
mysql> insert into TABLENAME (COL1, COL2) values ('VALUE1','VALUE2');
mysql> select * from TABLENAME;
mysql> select * from TABLENAME where COND1 and/or COND2...;
mysql> select attr1, attr2,... from TABLENAME (where COND);
mysql> update TABLENAME set COL1='VALUE1',COL2='VALUE2',... where COND;
mysql> delete from TABLENAME where COL1='VALUE1' and/or COL2='VALUE2'....;
mysql> truncate TABLENAME;
mysql> insert into mysql.user(host,user,password,ssl_cipher,x509_issuer,x509_subject,authentication_string)
values ('localhost','ID',password('PASSWORD'),"","","","");
PERMISSION
mysql> insert into mysql.db values('HOSTNAME','DBNAME','ID','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y');
mysql> grant all privileges on DBNAME.TABLENAME(or *) to 'ID'@'HOSTNAME' identified by 'PASSWORD';
mysql> grant all privileges on *.* to 'ID'@'HOSTNAME' identified by 'PASSWORD';
mysql> flush privileges;
mysql> update user set password=password('NEWPASSWORD') where user='ID';