centos7安装二进制版的mysql5.7.24版本

时间:2022-10-09 21:03:33

1.首先,官网下载mysql-5.7.24-linux-glibc2.12-x86_64.tar,传到虚拟机上,然后使用tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar解压到usr/local/mysql

2.配置etc/my.cnf,如果没有,自己创建配置参数如下


[mysql]
socket=/var/lib/mysql/mysql.sock

[mysqld]
#设置3306端口
port = 3306
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 服务端编码
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M

 

3.进入mysql文件夹,运行命令

/bin/mysqld --initialize --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --uesr=mysql

 

4.进入mysql/support-files运行命令

cp -a mysql.server /etc/init.d/mysql

 

5.service mysql start 到此mysql服务正式启动

在第3步会形成一个随机初始密码,登陆时填写即可 mysql -uroot -p随机初始密码

安过程中的坑

1.一开始总是报The server quit without updating PID file(/usr/local/mysql/data/主机名.pid)的错,pid文件是mysql自动生成的,也就是说,在启动是,并没有生成这个文件,当然首先应该去查看日志

tail -n 200 /var/log/mysqld.log 

 

2018-11-18 10:03:53 127191 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist

 

发现了错误所在,用户信息不存在,查找了网上的各种办法,都没用,后来无意中发现日志文件的所有者是mysql,在第3步初始化数据库的时候,因为自己的虚拟机上没用建任何用户,一直都是用root 所以--user=root,但这是错的!错的!错的!具体原因还有待学习,删除mysql/data文件夹,再执行3,启动成功

 

2.在登陆的时候,使用初始随机密码登陆失败,提示密码错误

error:Access denied for user 'root'@'localhost' (using password: YES)

error:Access denied for user 'root'@'localhost' (using password: NO)

 

解决办法:

1)网上有人说在my.cnf中添加skip-grant-tables,登陆时使用mysql -uroot 跳过初始密码,直接登陆。但不知道为什么,重新初始化了之后还是没用

2)运行mysqld_afe skip-grant-tables & ,这个命令可能是错的,记不清了大概的意思也和第一个相同就是跳过初始密码就好,然后克隆一个对话,再次免密登陆,然而还是不行

3)删除mysql/data文件夹,再执行3,使用3的初始随机密码登陆,成功.........登陆时mysql -uroot -p回车,第二行再输入随机密码,我是重新初始化了很多次之后成功的,还是很懵,有待学习