环境说明
centos 7.6
mysql 8.0
配置
第一步:更改管理员root账号的密码
- 方法1:
- [root@node1 mysql_3306]# bin/mysqladmin -uroot password '123' -p
- Enter password: 输入刚刚初始化产生的临时密码
- 方法2:
mysql> set password=password('456'); //未来版本将会弃用
或者
mysql> set password='123'; //推荐
重置完成后,建议刷新权限,让其立即生效
mysql> flush privielges;
第二步:把mysql客户端命令添加到环境变量,以后随时可以访问
[root@node1 mysql_3306]# echo 'export PATH=$PATH:/mysql_3306/bin' >> /etc/profile
[root@node1 mysql_3306]# source /etc/profile
设置完成后,我们可以在任意位置调用mysql客户端命令
[root@node1 mysql_3306]# mysql -uroot -p
Enter password:123
第三步:手工定义MySQL的配置文件(非常重要)
# vim /mysql_3306/my.cnf
[mysqld]
basedir=/mysql_3306
datadir=/mysql_3306/data
socket=/tmp/mysql.sock
选项说明:
[mysqld] 代表针对服务器端进行配置
basedir 代表数据库的安装目录
datadir 代表数据目录,以后专门用于存放数据文件的(核心目录)
socket 代表套接字文件,专门为客户端与服务器端连接提供一个桥梁
[root@node1 mysql_3306]# service mysql_3306 restart
C(Client) === mysql命令 连(socket套接字)接 mysqld服务器端程序
第四步:安全配置(对于生产环境比较重要)
一路Y,搞定!
其主要就是是否启动密码脚尖器、是否设置root密码、是否允许root远程连接、是否移除测试数据库等等一系列功能。
常见问题:如何关闭MySQL密码强度检测?
[root@node1 mysql_3306]# vim /mysql_3306/my.cnf
[mysqld]
...
validate_password=OFF
[root@node1 mysql_3306]# service mysql_3306 restart
常见问题
由于各种原因无密码修改密码
第一步 停止mysql服务
注意,我这里的mysql服务名为mysql_3306
在centos7的环境中,在实验中systemctl mysql_3306 stop与service mysql_3306 stop效果不完全一样,这里切记使用service mysql_3306 stop
第二步 跳过注册表,无密码登录mysql
这里重新启动mysql服务,是以跳过注册表即无须密码登录,将密码设置为空字符串
如果有时候这命令第一次不行,可以再尝试一次下面命令,因为服务启动比较慢的原因
bin/mysqld_safe --skip-grant-tables & mysql
然后重启服务,清除无密码登录
第三步 设置密码
登录mysql输入mysql -uroot -p回车键,输密码栏由于前面已经设置密码为空,直接回车进入
#将本地主机localhost的用户root密码修改为‘12345678’
mysql> alter user 'root'@'localhost' identified by '12345678';
至此重置完成,可以正常方式登录。
如果帮到你,请点个赞嘿嘿~