系统环境
centOS7 、MySQL5.7.23
参考网站:https://www.jb51.net/article/113844.htm
1、安装新版mysql之前,我们需要将系统自带的mariadb-lib卸载
2、解压MySQL安装包
3、其中最简单的安装mysql-server服务,只需要安装如下4个软件包即可,我们可以使用rpm -ivh命令进行安装
mysql-community-common-5.7.23-1.el7.x86_64.rpm
mysql-community-libs-5.7.23-1.el7.x86_64.rpm --(依赖于common)
mysql-community-client-5.7.23-1.el7.x86_64.rpm --(依赖于libs)
mysql-community-server-5.7.23-1.el7.x86_64.rpm --(依赖于client、common)
4、接下来是初始化数据库,我们使用如下几条命令均可,效果都是一样的
[root@5201351 ~]#mysql_install_db --datadir=/var/lib/mysql
//必须指定datadir,执行后会生成~/.mysql_secret密码文件
[root@5201351 ~]# mysqld --initialize
//新版的推荐此方法,执行生会在/var/log/mysqld.log生成随机密码
5、更改mysql数据库目录的所属用户及其所属组,然后启动mysql数据库
至此MySQL安装完成,但是此时MySQL使用还有问题,需进行如下操作
更改root账号密码
1、重置密码的第一步就是跳过MySQL的密码认证过程,方法如下:
#vim /etc/my.cnf(注:windows下修改的是my.ini)
在文档内搜索mysqld定位到[mysqld]文本段:
/mysqld(在vim编辑状态下直接输入该命令可搜索文本内容)
在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程,如下图所示:
2、重启MySQL
systemctl restart mysqld.service
3、重启之后输入#mysql即可进入MySQL
4、接下来就是用SQL来修改root密码
mysql> use mysql;
mysql> update user set authentication_string=password("你的新密码") where user="root";
mysql> flush privileges;
mysql> quit
注:5.7版本后的MySQL的user表中的password字段改成了authentication_string。
5.编辑my.cnf,去掉刚才添加的内容,然后重启MySQL。
常见问题
一、Can't connect to MySQL server on '192.168.68.128'(10038)
解决方案:
虚拟机未开放MySQL对应的端口;使用如下命令进行端口开放:
永久开启3306端口: firewall-cmd --zone=public --add-port=3306/tcp --permanent
刷新防火墙使其生效:firewall-cmd --reload
查看系统开放的所有端口:firewall-cmd --zone=public --list-ports
二、Access denied for user 'root'@'192.168.68.1'(using password:YES)
解决方案:
出现该问题,是因为“root”用户没有远程访问权限。使用如下命令进行权限开放
grant all privileges on *.* to 'root'@'%' identified by '123456';
就可以给所有ip都设定root登陆了。
如果授权成功,会有Query OK的提示。
然后:
flush privileges;
这个是刷新授权的意思,如果没有这句话,授权可能无法立刻生效。
三、【mysql】You must reset your password using ALTER USER statement before executing this statement报错处理
解决方式:
1、修改用户密码
MySQL版本5.7.6版本以前用户可以使用如下命令:
mysql>SET PASSWORD=PASSWORD(‘123456’);
MySQL版本5.7.6开始的用户可以使用如下命令:
mysql>ALTER USER USER() IDENTIFIED BY ‘123456’; 或者:
mysql>ALTERUSER ‘root’@’localhost’ IDENTIFIED BY ‘123456’;
2、刷新权限: flushprivileges;
安装MySQL服务启动失败解决思路
(1)cat /var/log/mysqld.log (默认MySQL日志的安装路径)
cat /var/log/mysqld.log | grep 'ERROR' 只查看错误信息
(2)sudo find / -name my.cnf (linux下查找MySQL配置文件路径)
(3)sudo mysql --help | grep my.cnf (linux下查找MySQL配置文件路径)