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