1、清除历史相关包
# 列出所有安装过的包
rpm -qa|grep mysql
rpm -qa|grep mariadb
#将查看到的使用rpm -e --nodeps删除
rpm -e --nodeps mariadb-libs
2、官网下载匹配服务器版本的mysql8.0.36包
(1)确认服务器操作系统
lsb_release -a
一般来说著名的 Linux 系统基本上分两大类:
RedHat 系列:Redhat、Centos、Fedora 等
Debian 系列:Debian、Ubuntu 等
(2)如图为centos, 官网下载red hat版本的mysql-8.0.36-1.el7.x86_64.rpm-bundle.tar
“https://dev.mysql.com/downloads/”==>“MySQL Community Downloads”==>“MySQL Community Server”
3、将安装包上传到/usr/local/mysql, 解压缩后进行安装
cd /usr/local
mkdir mysql
cd /usr/local/mysql
上传文件
# 解压
tar -xvf mysql-8.0.36-1.el7.x86_64.rpm-bundle.tar
#安装当前路径下所有安装包
rpm -Uvh *.rpm --nodeps --force
4、下载安装工具软件
yum install -y perl-Module-Install. noarch
yum clean all
yum makecache
yum -y install net-tools
yum install -y perl-Module-Install. Noarch
5、编辑配置文件/etc/my.cnf
# For advice on how to change settings please see
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
#端口
port=3306
# 字符集
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
#默认使用innodb引擎
default-storage-engine=INNODB
#配置表名不区分大小写 1:不区分大小写 0:区分大小写
lower_case_table_names=1
#指定不需要ONLY_FULL_GROUP_BY属性
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
# skip_ssl
#参数取值为0、1、2, 默认为0
innodb_force_recovery=0
#解决大文件打入报错
max_allowed_packet=150M
#最大连接数
max_connections=1000
#等待关闭连接的时间,单位为秒,默认28800秒,即8小时
wait_timeout=28800
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
6、删除原来的历史数据
cd /var/lib/mysql
rm -rf ./*
7、初始化mysql服务
mysqld --initialize --console --user=mysql
附:如果出现报错mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory,检查安装libaio.so.1 库文件。
(1)检查系统是否已经安装了 libaio.so.1
find / -name libaio.so.1
(2)安装libaio.so.1
sudo yum install libaio
(3)更新动态链接库缓存
sudo ldconfig
(4)重启mysql服务
mysqld --initialize --console --user=mysql
8、启动mysql服务
#授权目录:
chown -R mysql:mysql /var/lib/mysql/
chown -R mysql:mysql /var/log/mysqld.log
chown -R mysql:mysql /var/log/mysql.log
#启动MySQL服务
systemctl start mysqld
systemctl enable mysqld
#查看此时MySQL服务的状态:
systemctl status mysqld
9、查看或重置密码,登录mysql
(1)、获取初始密码登录
#获取mysql启动自动生成的临时密码
cat /var/log/mysqld.log | grep password
(2)、如果mysqld.log文件为空,可以重置密码
(2.1)修改配置文件my.inf,在 [mysqld] 段中添加一行 skip-grant-tables,改为免密码直接登录模式。
vi /etc/my.inf
[mysqld]
skip-grant-tables
(2.2)重启mysql
systemctl restart mysqld
(2.3)免密码登录
mysql -u root -p
ENTER
(2.4)修改密码(示例'YangXingyu@957!')
mysql>use mysql;
mysql>update user set authentication_string='' where user='root';
mysql>flush privileges;
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'YangXingyu@957!'
mysql> quit
(2.5)修改配置文件my.inf,在 [mysqld] 段中注释行 skip-grant-tables,改为需要密码登录模式。
vi /etc/my.inf
[mysqld]
# skip-grant-tables
(2.6)重启mysql
systemctl restart mysqld
9、设置可以远程登录
update user set host='%' where user='root';
flush privileges;
# 授权root用户可以远程登陆
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
## 立即生效
flush privileges;
10、 远程防火墙设置
#开放端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd –reload
11、创建数据库
create database nacos;