返回列表 发帖

MySQL8.0使用mysql_config_editor

笺注:这是在 CentOS8_Yum安装MySQL8.0 的基础上进行的。


数据库管理员root@localhost使用密码,在命令行中直接输出MySQL里的结果:
mysql -uroot -p"P@ssw7rd" -e "select version();"
图片1.png
备注:这Warning在mysql8.0.x版本都有的;在命令行输入密码就会显示。


解决方法:
利用 mysql_config_editor 进行预先设置连接信息,具体做法如下:

先确认命令已经安装好:
[root@redhat8 ~]# which mysql_config_editor
/usr/bin/mysql_config_editor


给数据库管理员root@localhost设置登录信息:
[root@redhat8 ~]# mysql_config_editor set --login-path=root --host=localhost --user=root -p
Enter password:  #输入数据库管理员root@localhost的密码


设置完毕,会生成一个加密文件:
[root@redhat8 ~]# pwd
/root
[root@redhat8 ~]# ls -alh .mylogin.cnf
-rw------- 1 root root 136 9月   1 19:59 .mylogin.cnf


查看当前主机上的加密文件的登录信息:
mysql_config_editor print --all
图片2.png


数据库管理员root@localhost使用加密文件,本地登录MySQL:
mysql --login-path=root
图片3.png


数据库管理员root@localhost使用加密文件,在命令行中直接输出MySQL里的结果:
mysql --login-path=root -e "select version();"
图片4.png

mysql --login-path=root -e "show databases;"
图片5.png
备注:前面那个Warning没有出现了。



######

创建数据库用户、赋权:
mysql> create user zhuohua@localhost identified with mysql_native_password by 'P@ssw9rd';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on db1.* to zhuohua@localhost;
Query OK, 0 rows affected (0.01 sec)

mysql> grant process on *.* to zhuohua@localhost;
Query OK, 0 rows affected (0.00 sec)
注释:输入了这条命令,数据库用户zhuohua@localhost才能进行备份数据库。

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)


查看数据库用户zhuohua@localhost的权限:
mysql> show grants for zhuohua@localhost;
+----------------------------------------------------------+
| Grants for zhuohua@localhost                             |
+----------------------------------------------------------+
| GRANT PROCESS ON *.* TO `zhuohua`@`localhost`            |
| GRANT ALL PRIVILEGES ON `db1`.* TO `zhuohua`@`localhost` |
+----------------------------------------------------------+
2 rows in set (0.00 sec)


给数据库用户zhuohua@localhost设置登录信息:
[root@redhat8 ~]# mysql_config_editor set --login-path=zhuohua --host=localhost --user=zhuohua -p
Enter password: #输入数据库用户zhuohua@localhost的密码


再次查看当前主机上的加密文件的登录信息:
mysql_config_editor print --all
图片6.png


数据库用户zhuohua@localhost使用加密文件,本地登录MySQL:
mysql --login-path=zhuohua
图片7.png


数据库用户zhuohua@localhost使用加密文件,在命令行中直接输出MySQL里的结果:
mysql --login-path=zhuohua -e "show databases;"
图片8.png
注释:按前面的配置,数据库用户zhuohua@localhost只能管理库db1





#####

使用数据库用户zhuohua@localhost备份数据库(db1):
[root@redhat8 ~]# mysqldump --login-path=zhuohua db1 > /mnt/db1.sql
[root@redhat8 ~]#
[root@redhat8 ~]# ls -lh /mnt/db1.sql
-rw-r--r-- 1 root root 314K 9月   1 20:18 /mnt/db1.sql
[root@redhat8 ~]#
[root@redhat8 ~]# du -sh /mnt/db1.sql
316K    /mnt/db1.sql


删除数据库(db1):
[root@redhat8 ~]# mysql --login-path=zhuohua -e "drop database db1"


创建数据库(db1):
[root@redhat8 ~]# mysql --login-path=zhuohua -e "create database db1"


还原数据库(db1):
[root@redhat8 ~]# mysql --login-path=zhuohua db1 < /mnt/db1.sql



#####

在加密文件上删除某个数据库用户的登录信息:
mysql_config_editor remove --login-path=zhuohua
图片9.png


重置加密文件:
mysql_config_editor reset
图片10.png





相关文章:
MySQL5.6使用mysql_config_editor

返回列表