linux下mysql相关命令 ubuntu18.04系统

1、如何登陆mysql、退出mysql

进入mysql,在根目录下,输入命令 mysql -uroot -p,后面输入数据库密码

退出mysql,在mysql下,输入命令 quit或者exit

2、Linux查看mysql 安装路径

可以用下面的命令查看所有的文件路径 ,在终端输入:

whereis mysql

回车,如果你安装好了mysql,就会显示文件安装的地址,例如我的显示(安装地址可能会不同)

[root@localhost ~]# whereis mysql
mysql: /usr/bin/mysql /usr/lib/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz

3、查询运行文件所在路径(文件夹地址)

如果你只要查询文件的运行文件所在地址,直接命令(还是以mysql为例):

which mysql

终端显示:

[root@localhost ~]# which mysql
/usr/bin/mysql

4、查看mysql数据库文件存储位置

进入mysql后,输入命令

showglobalvariableslike“%datadir%";

返回结果:

mysql> show global variables like “%datadir%";

+—————+—————–+

| Variable_name | Value           |

+—————+—————–+

| datadir       | /var/lib/mysql/ |

+—————+—————–+

1 row in set (0.00 sec)

5、查看、创建、修改数据库名

查看所有数据库名,输入命令

show databases;

创建数据库名,输入命令:

create database +数据库名称 ;(注意分号结尾)

高级命令创建数据库,且设置数据库编译格式为utf8或 utf8mb4:

CREATE DATABASE abc数据库名称 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

CREATE DATABASE abc数据库名称 CHARACTER SET utf8 COLLATE utf8_general_ci;

6、启动mysql服务

ubuntu系统下:

启动mysql,输入命令

sudo /etc/init.d/mysql start

停止mysql,输入命令

sudo /etc/init.d/mysql stop

重启mysql,输入命令

sudo /etc/init.d/mysql restart

7、修改统一数据库编码格式为utf8

a.先查看当前数据库编码格式:

输入命令mysql -uroot -p 进入mysql

继续输入命令

showvariableslike'%character%’;

返回结果为当前所有数据库的编码格式

+————————–+—————————-+

| Variable_name            | Value                      |

+————————–+—————————-+

| character_set_client     | utf8                       |

| character_set_connection | utf8                       |

| character_set_database   | latin1                     |

| character_set_filesystem | binary                     |

| character_set_results    | utf8                       |

| character_set_server     | latin1                     |

| character_set_system     | utf8                       |

| character_sets_dir       | /usr/share/mysql/charsets/ |

+————————–+—————————-+

8 rows in set (0.00 sec)

b.从上面可以看出mysql初始并非所有都是utf8编码,需要进行修改统一。

执行命令control+d ,退出数据库

继续执行命令进入vi编辑

sudo vim /etc/mysql/conf.d/mysql.cnf

在 [mysql] 标签的下一行添加下面的配置

default-character-set=utf8

输入下面的命令,打开第二个配置文件

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

找到 [mysqld] 标签,在其下一行添加下面的配置

character-set-server=utf8

配置文件修改成功之后,输入下面的命令重启mysql服务

sudo /etc/init.d/mysql restart

8、安装网站程序起始页,需要填写数据库地址

一般填写 localhost

9、查看下mysql的user表的用户权限

输入命令

selectuser, pluginfrom mysql.user;

返回结果

+——————+———————–+

| user             | plugin                |

+——————+———————–+

| root             | auth_socket           |

| mysql.session    | mysql_native_password |

| mysql.sys        | mysql_native_password |

| debian-sys-maint | mysql_native_password |

+——————+———————–+

4 rows in set (0.00 sec)

查看user表host、username、authentication_string密码信息

连接数据库服务器:

mysql -u root -p

显示所有的database:

showdatabases;

选择名为“mysql”的database:

use mysql;

显示“mysql” database的所有表:

showtables;

可以看到“mysql”database中有个user表:

显示user表结构:

desc user;

查看当前所有MySQL用户的username、host、密码(注意MySQL从某个版本开始,密码字段不是password,而是authentication_string):

selectUser,Host,authentication_string fromuser;
可以看到:

mysql> select User,Host,authentication_string from user;

+——————+———–+——————————————-+

| User             | Host      | authentication_string                     |

+——————+———–+——————————————-+

| root             | localhost | *41553C6F2E22C0515D9EC250AB12FC9245DF6F04 |

| mysql.session    | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |

| mysql.sys        | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |

| debian-sys-maint | localhost | *26A6386C3FE81DB74F8778DA77035242A9698E53 |

| root             | %         | *41553C6F2E22C0515D9EC250AB12FC9245DF6F04 |

+——————+———–+——————————————-+

5 rows in set (0.00 sec)

10、开放root@localhost在图形界面登录权限

问题很奇葩,ubuntu下用root登陆mysql可以成功,但通过图形界面登陆mysql却报错: ERROR 1698 (28000): Access denied for user 'root’@’localhost’

输入命令,登陆mysql

sudo mysql -u root -p

查看user表:

selectuser, pluginfrom mysql.user;

结果如下:参考9问题

| user             | plugin                |

+——————+———————–+

| root             | auth_socket           |

发现root的plugin并不是本地密码,因此需要修改它,但由于MySQL5.6.6版本之后增加了密码强度验证插件validate_password,相关参数设置的较为严格。如果修改的密码太过低级,则无法通过,报如下错误:

ERROR1819 (HY000): Your password does not satisfy the current policy requirements

先在mysql登陆下,修改密码策略,依次输入命令

setglobal validate_password_policy=0;

setglobal validate_password_mixed_case_count=0;

setglobal validate_password_number_count=3;

setglobal validate_password_special_char_count=0;

setglobal validate_password_length=3;

继续修改root用户对应密码,输入命令

update mysql.user set authentication_string=PASSWORD('输入root用户的密码'), plugin='mysql_native_password’whereuser='root’;

继续输入命令,刷新

flushprivileges;

重启mysql

我是ubuntu系统,输入命令如下。其他系统输入常用重启mysql命令即可

sudo /etc/init.d/mysql restart

进入mysql,查看user表root密码是不是本地

最后通过图形界面访问 'root’@’localhost’成功!

11、开放mysql任意ip远程访问权限

编辑mysql的启动配置文件

sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf
加前缀#注释掉bind-address = 127.0.0.1
保存并退出gedit

授权远程任意IP地址可以访问数据库

mysql> grant all privilages on hello.* to xyz@"%" identified by “访问数据库的密码" with grant option;
mysql> flush privileges;
mysql> quit

sudo ufw enable
sudo ufw default deny
sudo ufw allow 3306

重启mysql

sudo /etc/init.d/mysql restart

输入命令

netstat -an|grep 3306

返回结果,本地127 ip以变为:::,则表明容许任何ip访问数据库

root@node1:~# netstat -an | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN

12、mysql提示密码不符合要求:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

mysql -u root -p  #登录
mysql>set global validate_password_policy=0; #密码强度设为最低等级
mysql>set global validate_password_length=4; #密码允许最小长度为4
mysql>flush privileges; #更新授权表,生效

13、确认mysql 3306端口开放访问

输入命令

netstat -an|grep3306

返回结果

root@node1:~# netstat -an | grep 3306
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN

注意:现在的3306端口绑定的IP地址是本地的127.0.0.1

参考:Linux操作系统下MySQL数据库的使用方法

https://tech.sina.cn/2008-12-24/detail-iaaaaaaa4392890.d.html?from=wap

技术linux,mysql

Posted by Gauin