Linux系列之安裝MySQL
環境:CentOS 7以上
在CentOS中預設安裝有MariaDB,但是我們需要的是MySQL,安裝MySQL可以覆蓋MariaDB
MariaDB資料庫管理系統是MySQL的一個分支,主要由開源社群在維護,採用GPL授權許可。開發這個分支的原因之一是:甲骨文公司收購了MySQL後,有將MySQL閉源的潛在風險,因此社群採用分支的方式來避開這個風險。MariaDB的目的是完全相容MySQL,包括API和命令列,使之能輕鬆成為MySQL的代替品。
首先安裝MySQL的Yum Repository
Yum幫我們管理好了各種rpm包的依賴,是基於rpm的軟體包管理器,能夠從指定的伺服器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝.
所有的操作都是切換到root使用者下進行
安裝MySQL官方的Yum Repository
[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
下載rpm包
[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm
安裝MySQL服務
[root@localhost ~]# yum -y install mysql-community-server
執行安裝服務的時間比較長,耐心等待,中間有一次詢問y/n?輸入y回車
啟動mysql服務:
[root@localhost ~]# systemctl start mysqld.service
systemctl 命令是系統服務管理器指令,它實際上將 service 和 chkconfig 這兩個命令組合到一起。 以前的命令輸入也能使用
系統會提示:
注意:正在將請求轉發到“systemctl xxx xxx.service
檢視mysql執行狀態:
[root@localhost ~]# systemctl status mysqld.service
可以看到mysql服務的執行狀態,出現下面的資訊,其中Active後面代表狀態啟功服務後為**active (running)**,停止後為**inactive (dead)**
[[email protected] ~]# systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since 三 2018-02-14 10:12:13 CST; 3min 31s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 1424 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 935 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 1427 (mysqld)
CGroup: /system.slice/mysqld.service
└─1427 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid...
2月 14 10:11:53 localhost.localdomain systemd[1]: Starting MySQL Server...
2月 14 10:12:13 localhost.localdomain systemd[1]: Started MySQL Server.
也可以重新啟動服務
root@localhost ~]# systemctl restart mysqld.service
停止服務
[root@localhost ~]# systemctl stop mysqld.service
開機自啟動(預設)
[root@localhost ~]# systemctl enable mysqld.service
關閉開機自啟動
[root@localhost ~]# systemctl disable mysqld.service
安裝完成後預設有一個root使用者,初始密碼已經設定好,我們需要獲得這個初始密碼登入後再對其進行修改
為了加強安全性,MySQL5.7為root使用者隨機生成了一個密碼,在error log中,關於error log的位置,如果安裝的是RPM包, 則預設是/var/log/mysqld.log。
**只有啟動過一次mysql才可以檢視臨時密碼**
通過下面的命令檢視初始密碼,冒號後面的字元就是密碼
grep 'temporary password' /var/log/mysqld.log
登入root使用者
[root@localhost ~]# mysql -u root -p
提示輸入密碼,輸入初始密碼,使用該密碼之後需要設定自己的密碼,但是mysql對密碼有要求,我們想要設定簡單的密碼必須 要修改約束,修改兩個全域性引數:
validate_password_policy 代表密碼策略,**預設是1**:符合長度,且必須含有數字,小寫或大寫字母,特殊字元。 設定為0 判斷密碼的標準就基於密碼的長度了。一定要先修改兩個引數再修改密碼
mysql> set global validate_password_policy=0;
validate_password_length代表密碼長度,最小值為4
mysql> set global validate_password_length=4;
修改密碼為root,之後就可以使用該密碼登入了
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
遠端連線授權(如果需要遠端連線mysql)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
在CentOS中mysql的主要配置所在的目錄:
- /etc/my.cnf 這是mysql的主配置檔案
- /var/lib/mysql mysql資料庫的資料庫檔案存放位置
- /var/log mysql資料庫的日誌輸出存放位置