安装过程
[root@hoas~]# wget https://cdn.mysql.com/archives/mysql-5.6/MySQL-client-5.6.46-1.el7.x86_64.rpm
[root@hoas~]# wget https://cdn.mysql.com/archives/mysql-5.6/MySQL-server-5.6.46-1.el7.x86_64.rpm
[root@hoas~]# rpm -ivh MySQL-client-5.6.46-1.el7.x86_64.rpm
[root@hoas~]# rpm -ivh MySQL-server-5.6.46-1.el7.x86_64.rpm
使用过程以及遇到的问题
我们使用正常的逻辑 mysql 命令应该可以访问本地mysql,然而并不是,它提示你需要登录密码,蒙了,我没设置呀,登录密码在哪呢,经过查询发现密码在日志里,/var/log/mysqld.log
然而,执行 vim /var/log/mysqld.log 发现并没有这个文件,所以百度了下,有两种方式:
- 通过修改 my.cfg 来跳过访问,重新设置密码
- 停止mysql服务
[root@hoas~]# systemctl stop mysql
- 修改配置文件
[mysqld]
skip-grant-tables
- 重启服务
[root@hoas~]# systemctl start mysql
已经是免密使用mysql了
- 使用命令方式
- 会话执行以下命令
systemctl stop mysql
/usr/bin/mysqld_safe --skip-grant-tables
- 另外启动一个会话,发现已经是免密使用mysql了
以以上两种方式,都可以达到开启免密登录,然后可以密码
[root@localhost ~]# mysql
mysql>use mysql
mysql>update user set password=password("123456") where user="root";
mysql>flush privileges;
mysql>exit
经过以上过程,密码已修改完毕,下面我们尝试创建以下数据库
mysql> create database testdb
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
What? 我不是已经修改密码了吗,结果发现还得再设置一遍
mysql> show databases;
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
mysql> SET PASSWORD = PASSWORD('123456');
Query OK, 0 rows affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
至此,密码已修改完毕。
挺烦人的,所以,在安装过程中,还是看看日志吧,里面可能有密码哟~
本文结束
感谢以下博文的启示:
- https://www.cnblogs.com/angelasp/p/6443076.html
- https://www.cnblogs.com/666666pingzi/p/11149563.html
- https://blog.csdn.net/qq_20105831/article/details/89020337