centos 7 安裝 mysql 8.0.18


MySQL Community Downloads :https://dev.mysql.com/downloads/mysql/

一、檢查是否應安裝了mysql或者mariadb,有的話卸載

1.1 檢查mariadb

rpm -qa | grep mariadb


1.2 刪除mariadb

yum -y remove mariadb*

1.3 檢查mysql

rpm -qa | grep mysql

1.4 刪除mysql

yum -y remove mysql*

1.5 刪除舊的配置文件

rm -rf /etc/my.cnf

1.6 刪除文件

rm -rf /var/lib/mysql 

二、安裝mysql

2.1 配置安裝源

sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

2.2 安裝

sudo yum --enablerepo=mysql80-community install mysql-community-server


2.3 啟動mysql
啟動

systemctl start mysqld

查看運行狀態

systemctl status mysqld

停止

systemctl stop mysqld

重啟

systemctl restart mysqld


2.4 查看端口運行情況

netstat -nlpt

三、查看並修改密碼

3.1 mysql安裝后會生成一個默認密碼,此密碼登錄后要修改密碼,不能用於其他操作

cat /var/log/mysqld.log


3.2 登錄root賬號修改初始密碼,復制上面的密碼登錄

mysql -u root -p

修改密碼,注意密碼要稍微復雜點(大小寫+符號+數字),不然會提示 Your password does not satisfy the current policy requirements

ALTER USER USER() IDENTIFIED BY 'Xinmima@2020';

四、配置遠程訪問

4.1 查下系統用戶,root默認是不允許遠程訪問的,需要把下圖root賬戶的localhost改成%

use mysql;
select user,host,plugin,authentication_string from mysql.user;
select user,host,plugin from mysql.user;

4.2 修改root的權限並刷新權限

update mysql.user set host='%' where user='root';
flush privileges;

五、新建mysql賬號 + 授權

5.1 新建test賬號,%表示允許遠程登錄 ,改成ip就是ip登錄

create user 'test'@'%' identified by 'Xinmima@2020';

下面是是授權部分:
5.2 給test用戶授予testdb數據庫的所有權限(可遠程登陸)

grant all privileges on testdb.* to 'test'@'%';
flush privileges;

5.3 給test用戶授予testdb數據庫的查詢權限(可遠程登陸)

grant select on testdb.* to 'test'@'%';
flush privileges;

5.4 給test用戶授予testdb數據庫的insert,delete,update權限(可遠程登陸)

grant insert,delete,update on testdb.* to 'test'@'%';
flush privileges;

5.5 查看用戶的權限

show grants for 'test'@'%';


5.6 刪除test用戶對數據testdb的update權限

revoke update on testdb.* from 'test'@'%';
flush privileges;

六、修改mysql端口

6.1 編輯my.cnf

vi /etc/my.cnf

6.2 默認配置不含port行需自行添加,按esc退出INSERT模式 :wq 保存
port=6666

6.3 重啟mysql並查看端口狀態 注意:如果是雲服務器(如阿里雲),一定要檢查安全組是否開啟相應的端口,不然客戶端連不上

systemctl restart mysqld
netstat -nlpt

七、修改mysql的數據、日志存放路徑

7.1 先停止msyql

systemctl stop mysqld

7.2 先創建好要存儲的位置

mkdir -p /data/mysql
cd /data/mysql

7.3 把文件移到/data/mysql/文件夾下,cp -a參數是權限也一起復制,然后刪除原文件夾

cp -a /var/lib/mysql /data/
rm -rf /var/lib/mysql

7.4 修改軟連接

ln -s /data/mysql /var/lib/

7.5 查看軟連接

ls -la /var/lib/mysql

下圖是正確的軟連接方式:

7.6 修改my.cnf配置文件

vim /etc/my.cnf
屬性 原值 修改為
datadir /var/lib/mysql /data/mysql
socket /var/lib/mysql/mysql.sock /data/mysql/mysql.sock

datadir=/data/mysql
socket=/data/mysql/mysql.sock

7.7 啟動mysql並查看狀態

systemctl start mysqld

7.8 登錄mysql,查看數據文件

mysql -u root -p
show global variables like "%datadir%";

八、常見問題和處理

8.1 如果客戶端連接報錯"Authentication plugin 'caching_sha2_password' cannot be loaded",是以為mysql 8的加密方式改了。有兩種選擇 1、升級客戶端 2、把加密方式改為傳統的方式
推薦用新的加密方式(一般升級客戶端就可以了),老項目代碼的話可能有老的jar包等不支持新加密,下面是改為傳統加密方式

ALTER mysql.USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Xinmima@2020';

8.2 查找mysql的安裝路徑

whereis mysql

mysql: /usr/bin/mysql /usr/lib64/mysql /usr/share/man/man1/mysql.1.gz

8.3 創建數據庫,字符集有兩種

方式 字符集 排序規則
不支持emoji utf8 utf8_general_ci
支持emoji utf8mb4 utf8mb4_general_ci

8.4 查看mysql版本

mysql -V


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM