网上各种安装教程五花八门,各种报错,所以整理了一个完整版本,以下教程作者在2台新服务器测试安装均无问题。
一.下载mysql
下载地址:MySQL :: Download MySQL Community Server (Archived Versions)
或者直接执行命令
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar
二.解压mysql
执行命令
tar -xvf mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar
三.安装前的准备
1.卸载mariadb
rpm -qa|grep mariadb #检查是否安装mariadb
rpm -e --nodeps mariadb-libs #卸载
rpm -qa|grep mariadb #再次检查
2.检查 libaio
rpm -qa|grep libaio #查看是否安装libaio
yum -y install libaio #yum进行安装
3.检查 net-tools
rpm -qa|grep net-tools #查看是否安装net-tools
yum -y install net-tools #yum进行安装
4.安装openssl-devel依赖
yum -y install openssl-devel
四.开始安装
1.进入到mysql解压目录开始安装
rpm -ivh mysql-community-common-8.0.33-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-plugins-8.0.33-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.33-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-compat-8.0.33-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-devel-8.0.33-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.33-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-icu-data-files-8.0.33-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.33-1.el7.x86_64.rpm --nodeps --force
按照上面顺序依次执行命令,如果各位安装遇到了错误可以留言,也可以在留言区分析错误如何解决,目前我上面方式已经在2台服务器测试没问题。
五.启动mysql
systemctl start mysqld #启动
systemctl restart mysqld #重启
systemctl status mysqld #查看状态
systemctl stop mysqld #关闭
六.后续配置操作
1.查看默认mysql密码
/var/log/mysqld.log
A temporary password is generated for root@localhost: kjasdo)912!
2.登录mysql,修改密码(第一次登录进来必须要修改密码)
mysql -uroot -p
Enter password: #输入默认密码登录进去
use mysql;
// 修改密码
ALTER USER 'root'@'localhost' identified by '121212';
//开启远程登陆
update user set host='%' where user='root';
flush privileges;
mysql配置文件目录: vim /etc/my.cnf
至此mysql可以正常使用了
七.常见错误解决
1.远程无法访问
//关闭防火墙
systemctl stop firewalld
//开始3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
2.关闭selinux
# 临时生效
[root@localhost ~]# setenforce 0
# 永久生效,需要重启系统
[root@localhost ~]# sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
[root@localhost ~]# reboot
3.配置Mysql表明不区分大小写配置
//配置Mysql表明不区分大小写配置
/etc/my.cnf
lower_case_table_names=1
//停止mysql
systemctl stop mysqld
//删除mysql数据
datadir=/home/app/data/mysql
socket=/var/lib/mysql/mysql.sock
// 重新生成mysql初始化文件,最好别用root建议把root改成mysql
sudo /usr/sbin/mysqld --initialize --user=root
方式2
sudo /usr/sbin/mysqld --initialize --user=root --lower-case-table-names=1
4.解决mysql8.0忘记密码
// 在/etc/my.cnf配置加上
skip-grant-tables
// 执行下面命令
mysql -uroot -p
提示输入密码直接回车
// 密码设置成空,下次登陆会提示让你输入修改密码
UPDATE user SET authentication_string=password('') WHERE user='root'
flush privileges;
5.报错ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
MySQL版本5.7.6版本以前用户可以使用如下命令:
mysql> SET PASSWORD = PASSWORD('Admin2022!');
MySQL版本5.7.6版本开始的用户可以使用如下命令:
mysql> ALTER USER USER() IDENTIFIED BY 'Admin2022!';
八.Mysql常用配置
bind-address=0.0.0.0
port=3306
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
max_connect_errors=1000
#开启区分大小写
lower_case_table_names=1
#这个值(默认8)表示可以重新利用保存在缓存中线程的数量,当断开连接时如果缓存中还有空间,那么客户端的线程将被放到缓存中,
# 根据物理内存设置规则如下:
# 1G —> 8
# 2G —> 16
# 3G —> 32
# 大于3G —> 64
query_cache_size=64M
query_cache_limit = 64M
key_buffer_size = 64M
-
初始化,此时就会根据我们更改的新配置文件就行配置
sudo mysqld --initialize-insecure --user=mysql --datadir=/var/lib/mysql
如有哪里有不对欢迎指出