1. 下載
https://dev.mysql.com/downloads/
使用wget下載yum的源信息:
wget -i -c https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
或者直接下載rpm安裝包
鏈接地址:
https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-server-8.0.26-1.el7.x86_64.rpm
注意都是rpm結尾,但是文件大小相差比較大,yum源的rpm安裝包只有幾十K,真正的RPM安裝包是幾百兆。
2. 安裝
2.1卸載歷史版本mysql
以及mariadb
# 查詢
rpm -qa|grep mysql
rpm -qa|grep mariadb
# 移除
rpm -ev [需要移除組件的名稱]
rpm -e --nodeps [需要移除組件的名稱] //此命令為強制卸載
# 或者用yum移除
yum remove
2.2 使用yum源信息安裝
# repo的安裝,執行完成后會在/etc/yum.repos.d/目錄下生成兩個repo文件mysql-community.repo mysql-community-source.repo
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
cd /etc/yum.repos.d/
# 注意:必須進入到/etc/yum.repos.d/目錄后再使用yum命令進行安裝
yum -y install mysql-server
# 如果報錯誤Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY,加上force和nodeps參數即可
# 例如:
rpm -ivh mysql-community-server-8.0.25-1.el8.x86_64.rpm --force --nodeps
2.3 使用rpm直接安裝
如果報錯誤Header V3 DSA/SHA256 Signature, key ID 5072e1f5: NOKEY,加上force和nodeps參數
安裝服務端:
rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm --force --nodeps
安裝客戶端:
rpm -ivh rpm包
* 安裝common包
rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm
* 安裝類庫
rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm --force --nodeps
* 安裝客戶端(前兩個是其依賴)
rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm
2.4 查看安裝后的信息
# 查看服務狀態,可能沒啟動
systemctl status mysqld
# 啟動服務
systemctl start mysqld
cat /etc/group | grep mysql
cat /etc/passwd | grep mysql
mysqladmin --version
2.5 初始化mysql
# 創建數據文件目錄和mysql系統數據庫 產生隨機root密碼
mysqld --initialize
查看初始密碼:
cat /var/log/mysqld.log | grep password
或
grep 'temporary password' /var/log/mysqld.log
修改密碼:沒有經過測試。
復制 root@localhost: 后面的密碼。登錄mysql,並粘貼默認密碼
因為MySQL8.0的更改,導致必須要重置密碼
alter user 'root'@'localhost' identified by '12345678';
如果設置密碼時候出現提示
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
代表需要降低policy的等級后在執行
set global validate_password.policy=0;
開啟MySQL遠程連接
use mysql;
#修改root賬戶權限
update user set host = '%' where user = 'root';
#刷新權限
flush privileges;
2.6 安全設置
mysql_secure_installation
# 提示如下步驟:
1. 輸入初始密碼;
2. 提示root密碼過期,需要修改密碼,這是mysql8的提示,輸入兩次密碼確認;
3. 提示是否更改root密碼,這步其實重復了;
4. 是否刪除匿名用戶,建議刪除;
5. 是否禁用root賬戶的遠程登錄,建議禁用,即mysql的root只可以本機登錄;
6. 是否刪除test數據庫,建議刪除;
7. 是否重新加載權限表,選y。
2.7 mysql登錄
# 輸入剛才修改后的密碼
mysql -uroot -p
2.8 重置密碼(Mysql8.0+有變化)
先把root的舊密碼置空(這個步驟可以不做)
use mysql;
update user set authentication_string='' where user='root';
# 備注:Mysql5.7+ password字段 已改成 authentication_string字段
重置成新密碼:
alter user 'root'@'localhost' identified by 'newpassword';
# 備注:Mysql8.0修改密碼方式已有變化(此處是個坑,需要注意)
# Mysql8.0之前:
update user set password=password('root') where user='root';
重新登錄:
mysql -uroot -pnewpassword
2.9 如何停止、重啟和查看mysql服務
systemctl stop mysqld //停止服務
systemctl restart mysqld //重啟服務
systemctl status mysqld //查看服務
2.10 mysql相關目錄
# 相關命令
/usr/bin
# 配置文件目錄
/usr/share/mysql
# 數據庫文件存放目錄
/var/lib/mysql
# mysql的啟動配置文件
/etc/my.cnf
其他:
my.ini # windows操作系統下的配置文件
my.cnf # linux操作系統下的配置文件
mysqld # 是后台守護進程,即mysql daemon
mysql # 是客戶端命令行
3. 創建用戶和數據庫
3.1 創建用戶
用戶名:wood,密碼:PWDwooddb_2021,可以從任何地址登入。
create user 'wood'@'%' identified by 'PWDwooddb_2021'
3.2 創建數據庫wood_db;
create database wood_db;
3.3 授權
常用授權語句
GRANT 權限 ON 數據庫.表單名稱 TO 用戶名@主機名 對某個特定數據庫中的特定表單給予授權。
GRANT 權限 ON 數據庫.* TO 用戶名@主機名 對某個特定數據庫中的所有表單給予授權。
GRANT 權限 ON *.* TO 用戶名@主機名 對所有數據庫及所有表單給予授權。
GRANT 權限1,權限2 ON 數據庫.* TO 用戶名@主機名 對某個數據庫中的所有表單給予多個授權。
GRANT ALL PRIVILEGES ON *.* TO 用戶名@主機名 對所有數據庫及所有表單給予全部授權。
授權wood用戶所有wood_db的權限
grant all on wood_db.* to 'wood'@'%';
查看用戶授權
show grants for wood@'%';
+---------------------------------------------------+
| Grants for wood@% |
+---------------------------------------------------+
| GRANT USAGE ON *.* TO `wood`@`%` |
| GRANT ALL PRIVILEGES ON `wood_db`.* TO `wood`@`%` |
+---------------------------------------------------+
2 rows in set (0.00 sec)
如果修改沒有生效,考慮使用flush privileges命令刷新權限信息。