注意:本文系統環境 CentOS 7.7 64位
MySQL Community Server 5.7.32
一丶卸載CentOS7系統中默認的數據庫mariadb
原因一:ps原作者的話介紹下背景:CentOS 7 版本將MySQL數據庫軟件從默認的程序列表中移除,用MariaDB代替了,MariaDB數據庫管理系統是MySQL的一個分支,主要由開源社區在維護,采用GPL授權許可。開發這個分支的原因之一是:甲骨文公司收購了MySQL后,有將MySQL閉源的潛在風險,因此社區采用分支的方式來避開這個風險。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品。
原因解釋二:以前的Linux系統中數據庫大部分是mysql,不過自從被sun收購之后,就沒用集成在centos這些開源Linux系統中了,那么如果想用的話就需要自己安裝了,首先centos7 已經不支持mysql,因為收費了你懂得,所以內部集成了mariadb,而安裝mysql的話會和mariadb的文件沖突,所以需要先卸載掉mariadb。
1 yum list installed | grep mariadb #檢查mariadb是否安裝 2 卸載命令一: yum -y remove mariadb* 3 卸載命令二: rpm -qa |grep mariadb |xargs yum remove -y
二丶安裝Mysql
1.下載Mysql
下載地址:https://dev.mysql.com/downloads/mysql/
Select Version: 5.7.32
Select Operating System: Red Hat Enterprise Linux / Oracle Linux
Select OS Version: All
下載下方 Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit), RPM Bundle (mysql-5.7.32-1.el7.x86_64.rpm-bundle.tar)
2.將下載的mysql-5.7.32-1.el7.x86_64.rpm-bundle.tar文件放到/usr/local/mysql目錄
2.1切換到/usr/local/mysql的當前目錄
2.2解壓壓縮文件
命令如下:
1 tar xf mysql-5.7.32-1.el7.x86_64.rpm-bundle.tar
解壓后你會看到有10個rpm包
mysql-community-client(*客戶端程序和工具)
mysql-community-server(*服務器程序和工具)
mysql-community-libs(*LIB庫)
mysql-community-libs-compat(*LIB共享兼容庫)
mysql-community-common(*公共文件)
mysql-community-devel(開發MySQL必備的頭文件和庫)
mysql-community-embedded(嵌入式庫)
mysql-community-embedded-compat(嵌入式共享兼容庫)
mysql-community-embedded-devel(嵌入式開發庫)
mysql-community-test(測試套件)
2.3通過rpm方式安裝(ps記得在當前目錄, 只安裝必備包及其部分包)
命令如下:
-ivh解釋
-i 安裝軟件包 -v 可視化,提供更多的詳細信息的輸出 -h 顯示安裝進度
rpm -ivh mysql-community-common-5.7.32-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.32-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-compat-5.7.32-1.el7.x86_64.rpm rpm -ivh mysql-community-devel-5.7.32-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.32-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.32-1.el7.x86_64.rpm rpm -ivh mysql-community-embedded-compat-5.7.32-1.el7.x86_64.rpm
安裝結束后會在Linux中的各種目錄生成必要的文件,如下表:

到現在為止,CentOS 7 安裝MySQL 5.7.32已經安裝結束。
.tar.gz的安裝方式中的, 比如添加mysql用戶及mysql用戶組等操作才需要額外設置的
這里RPM安裝包自動把這些都設置好了, 所以推薦rpm安裝方式, 可以大幅度減少操作.
2.4修改Mysql的my.cnf的配置 (不確定的可以直接復制我這份內容,文末會貼出一份常用的mysql配置信息)
[client] # 客戶端設置,即客戶端默認的連接參數 port = 3306 # 端口號 user = mysql # linux的用戶 [mysqld] # 服務端基本設置 # 基礎設置 basedir = /usr/local/mysql # MySQL安裝根目錄 datadir=/data/mysql # MySQL數據文件所在位置 socket=/var/lib/mysql/mysql.sock # 用於本地連接的socket套接字,mysqld守護進程生成了這個文件 log-error=/var/log/mysqld.log # 數據庫錯誤日志文件 pid-file=/var/run/mysqld/mysqld.pid # pid文件所在目錄 max_connections = 400 # 最大連接數 character-set-server = utf8mb4 # 設置client連接mysql時的字符集,防止亂碼 explicit_defaults_for_timestamp = true # TIMESTAMP如果沒有顯示聲明NOT NULL,允許NULL值 lower_case_table_names = 1 # 是否對sql語句大小寫敏感,1表示不敏感 max_allowed_packet = 128M # SQL數據包發送的大小,如果有BLOB對象建議修改成1G
注意: 默認data數據會存在/var/lib/mysql目錄下, 如果想自己指定位置, 請進行如下操作
1.刪除默認目錄 rm -rf /var/lib/mysql
2.新建自己的目錄 例如: mkdir /home/mysql
3.對應修改my.cnf中的datadir參數的值為 /home/mysql
4.將socket這項修改為socket=/home/mysql/mysql.sock
3.初始化數據庫, 啟動mysql,設置開機自啟
初始化數據庫命令如下:
mysqld --defaults-file=/etc/my.cnf --initialize-insecure --user=mysql
給mysql用戶分配文件夾權限:
chown mysql:mysql /data/mysql -R
啟動mysql
systemctl start mysqld.service
設置為自動啟動
systemctl enable mysqld
4.常見命令
systemctl start mysqld #啟動mysqld
systemctl stop mysqld #停止mysqld
systemctl restart mysqld #重啟mysqld
systemctl enable mysqld #設置開機啟動
systemctl status mysqld #查看 MySQL Server 狀態
三丶測試數據庫安裝是否成功
1.查詢默認生成的數據庫密碼
如下: #D#<Psahb3Gq就是密碼
[root@VM_0_10_centos mysql]# grep 'temporary password' /var/log/mysqld.log 2020-10-20T04:42:25.145990Z 1 [Note] A temporary password is generated for root@localhost: #D#<Psahb3Gq
2.登錄MYSQL(輸入密碼的時候是沒有顯示的, ssh工具一般支持賦值粘貼,可以考慮復制)
mysql -u root -p
3.修改MYSQL密碼
注意: 可能出現的情況
1.密碼要大於8位才能修改成功
2.可以考慮設置為符合要求的密碼,或者修改密碼策略
修改密碼策略
mysql> set global validate_password_special_char_count=0; 參數是密碼中非英文數字等特殊字符的個數,當密碼策略是MEDIUM或以上時生效。 mysql> set global validate_password_length=6 參數是密碼的長度 mysql> set global validate_password_mixed_case_count=0; 參數是密碼中英文字符大小寫的個數,當密碼策略是MEDIUM或以上時生效。 mysql> set global validate_password_number_count=0; 參數是密碼中至少含有的數字個數,當密碼策略是MEDIUM或以上時生效。 mysql> set global validate_password_policy=0; 這個參數可以設為0、1、2,分別代表從低到高的密碼強度,此參數的默認值為1,如果想將密碼強度改弱,則更改此參數為0。
修改密碼的三個方式(任選其一即可): 在123456處填入你要修改的密碼
方式1: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; 方式2: SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456'); 方式3: mysql> use mysql; mysql> UPDATE user SET Password = PASSWORD('123456') WHERE user = 'root'; mysql> FLUSH PRIVILEGES;
exit退出mysql,再使用新密碼登錄
4.遠程訪問Mysql授權設置
刷新權限 FLUSH PRIVILEGES; 使修改立即生效.
mysql> use mysql; mysql> UPDATE user SET host = '%' WHERE user = 'root'; mysql> FLUSH PRIVILEGES;
這個時候, 你就可以通過其它的電腦使用Navicat等數據庫操作軟件遠程連接你服務器的數據庫了
