Centos7 离线安装 MySQL 8.0.32
1 官网下载mysql离线rpm包
下载地址:https://dev.mysql.com/downloads/mysql/
2 将下载的tar包上传到/opt/rpm/mysql目录
3 删除CentOS自带的mariadb
说明:不删的话mysql会和mariadb冲突
rpm -qa|grep mariadb
rpm -e --nodeps mariadb-libs
4 在/opt/rpm/mysql目录解压tar包
cd /opt/rpm/mysql/
tar -xvf mysql-8.0.32-1.el7.x86_64.rpm-bundle.tar
5 安装离线rpm包
rpm -ivh *.rpm --force --nodeps
6 初始化数据库&授权mysql用户访问
6.1 更改数据存放路径
修改/etc/my.cnf里的datadir和socket
6.2 初始化
mysqld --initialize --console # 注意需要表名忽略大小写先看14.3 14.4
chown -R mysql:mysql /var/lib/mysql/
7 启动mysql服务并设置开机自启
systemctl start mysqld
systemctl enable mysqld
8 查看临时密码
cat /var/log/mysqld.log
9 登录mysql客户端
mysql -u root -p
粘贴密码回车
10 设置root用户的密码
alter USER 'root'@'localhost' IDENTIFIED BY 'Root@123456'; #需要包含大小写字母、数字、符号,我试了好多次才行- -
11 授权root用户可以远程访问
show databases;
use mysql;
select host, user, authentication_string, plugin from user;
update user set host = "%" where user='root';
select host, user, authentication_string, plugin from user;
flush privileges; #刷新权限
12 用Navicat远程连接
大功告成!
13 参考
https://www.cnblogs.com/quchunhui/p/11115339.html
14 忘记改表名忽略大小写(lower_case_table_names=1)怎么办
14.1 暂停mysql服务
systemctl stop mysqld
14.2 删掉mysql的目录
rm -rf /var/lib/mysql
14.3 编辑/etc/my.cnf文件
最后一行添加:lower_case_table_names=1
14.4 初始化数据库(读取my.cnf里的配置)
mysqld --initialize --console
14.5 重新给mysql用户授权
chown -R mysql:mysql /var/lib/mysql/
14.6 启动mysql服务
systemctl start mysqld
14.7 查看临时密码
cat /var/log/mysqld.log
14.8 登录mysql修改root密码,授权远程连接
alter USER 'root'@'localhost' IDENTIFIED BY 'Root@123456';
use mysql;
update user set host = "%" where user='root';
flush privileges;
show variables like '%lower_case_table_names%';
终于改好了!下次应该在初始化的时候就修改/etc/my.cnf文件和参数--lower-case-table-names=1