centos 7 使用RPM安裝mysql 8
centos7 自己帶著 mariadb, mariadb是mysql的一個分支, 如果要安裝mysql數(shù)據(jù)庫, 需要清理掉
# 搜索是否已經(jīng)安裝
rpm -qa | grep mysql
rpm -qa | grep mariadb
# 清理命令
rpm -e mariadb-libs******_64
如果rpm -e刪除失敗, 提示有依賴關(guān)系的軟件需要安裝, 可以使用 yum remove + 包名 來刪除 mariadb
開始安裝
一般使用yum直接安裝是可以的, 但是有個問題, yum是到默認的mariadb用的yum源去找, 可能會找不到,所以我們自己來安裝
需要的rpm包列表
mysql-community-client-plugins-8.0.22-1.el7.x86_64.rpm
mysql-community-common-8.0.22-1.el7.x86_64.rpm
mysql-community-libs-8.0.22-1.el7.x86_64.rpm
mysql-community-client-8.0.22-1.el7.x86_64.rpm
mysql-community-server-8.0.22-1.el7.x86_64.rpm
# rpm -ivh + 包安裝所有的包
rpm -ivh mysql-community-server-8.0.22-1.el7.x86_64.rpm
報錯:
error: Failed dependencies:
libaio.so.1()(64bit) is needed by mysql-community-server-8.0.22-1.el7.x86_64
libaio.so.1(LIBAIO_0.1)(64bit) is needed by mysql-community-server-8.0.22-1.el7.x86_64
libaio.so.1(LIBAIO_0.4)(64bit) is needed by mysql-community-server-8.0.22-1.el7.x86_64
解決方式:yum install libaio
# 初始化數(shù)據(jù)庫
mysqld --initialize
# 啟動mysql
service mysqld start
啟動失敗時, 可以查看日志 cat /var/log/mysqld.log
錯誤信息:
2021-01-08T12:25:36.325615Z 1 [ERROR] [MY-012271] [InnoDB] The innodb_system data file 'ibdata1' must be writable
2021-01-08T12:25:36.325816Z 1 [ERROR] [MY-012278] [InnoDB] The innodb_system data file 'ibdata1' must be writable
解決辦法:
chown -R mysql:mysql /var/lib/mysql
#chmod -R 777 /var/lib/mysql
啟動:
systemctl start mysqld.service
初始化密碼
首先關(guān)閉mysqld服務(wù)
systemctl stop mysqld.service在/etc/my.cnf后 加上
skip-grant-tables無密碼登陸
mysql -u root -p充值密碼
> use mysql;
> update user set authentication_string='' where user='root'; -- 重置密碼為空
> quit; -- 退出
- 重新登陸,更改登陸密碼
首先要去掉 my.cnf里的skip-grant-tables, 然后重啟服務(wù)
mysql -u root -p -- 直接登陸
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼'; -- 更改密碼
flush privileges
- 正常登陸