最近做一個項目,需要用centos做數據伺服器,用mysql資料庫,就需要安裝mysql資料庫,之前沒接觸過centos,因此什麼也不懂,就從網上也查了很多資料,都覺得不是最好的方法。最後結合mysql官方資料和網友的資料,最後用rpm方式安裝,並總結給其他人以參考。 首先打開mysql管網,找到“ ...
最近做一個項目,需要用centos做數據伺服器,用mysql資料庫,就需要安裝mysql資料庫,之前沒接觸過centos,因此什麼也不懂,就從網上也查了很多資料,都覺得不是最好的方法。最後結合mysql官方資料和網友的資料,最後用rpm方式安裝,並總結給其他人以參考。
首先打開mysql管網,找到“yum repository”打開頁面或者直接打開如下鏈接
http://dev.mysql.com/downloads/repo/yum/
,找到自己需要的,點擊download,下載rpm文件,在centos中下載完成house可以用軟體管理器安裝,也可以自己用命令行安裝
sudo rpm -Uvh 'filename’
完成安裝。
輸入
yum repolist all | grep mysql
可以查看所有的mysql對應的rpm包,如果是安裝之前的版本,則需要進行相應的設置,打開
/etc/yum.repos.d/mysql-community.repo
文件,設置對應版本的enabled屬性,1是啟用,0是禁用,如果安裝當前的最新版本,則無需進行任何 設置。
輸入以下命令開始安裝mysql
sudo yum install mysql-community-server
等待安裝完成,輸入以下命令,啟動mysql服務
sudo service mysqld start
啟動完成,house可以查看mysql服務狀態
sudo service mysqld status
如果安裝的是5.7版本,在服務啟動時,因為數據目錄是空的,會產生以下操作:
- 初始化伺服器
- 在數據目錄中生成SSL證書和密鑰文件
- 安裝並啟用 validate_password 插件
- 超級用戶賬戶'root'@'localhost'被創建,超級用戶密碼被設置並存儲在error日誌文件,如需要顯示它,則執行如下命令
sudo grep 'temporary password' /var/log/mysqld.log
此時會生成一個隨機密碼,在命令行中輸入
mysql -uroot -p
加上剛纔的隨機密碼,登錄mysql。
用該密碼登錄到服務端後,必須馬上修改密碼,不然會報如下錯誤(本地方參考http://www.cnblogs.com/ivictor/p/5142809.html):
mysql> select user(); ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
如果只是修改為一個簡單的密碼,會報以下錯誤:
mysql> ALTER USER USER() IDENTIFIED BY '12345678'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
這個其實與validate_password_policy的值有關。
validate_password_policy有以下取值:
Policy | Tests Performed |
---|---|
0 or LOW |
Length |
1 or MEDIUM |
Length; numeric, lowercase/uppercase, and special characters |
2 or STRONG |
Length; numeric, lowercase/uppercase, and special characters; dictionary file |
預設是1,即MEDIUM,所以剛開始設置的密碼必須符合長度,且必須含有數字,小寫或大寫字母,特殊字元。
有時候,只是為了自己測試,不想密碼設置得那麼複雜,譬如說,我只想設置root的密碼為123456。
必須修改兩個全局參數:
首先,修改validate_password_policy參數的值
mysql> set global validate_password_policy=0; Query OK, 0 rows affected (0.00 sec)
更改之後可以修改為你自己的密碼。
設置完成後需要設置mysql的遠程訪問許可權,這裡有兩個地方需要設置,一個是對外部ip地址開放,一個是埠開放。
最常用的設置是,通過如下命令,設置mysql授權
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
如果要對某一個ip地址設置授權,則需要把%改為你的ip地址,設置完成,重新授權表
FLUSH PRIVILEGES;
然後exit退出mysql,並重新啟動mysql
service mysqld restart
在centos7中通過 firewall-cmd設置3306埠開放
firewall-cmd --zone=public --add-port=3306/tcp --permanent
設置完成,重新載入firewall
firewall-cmd --reload
通過命令來查看3306埠是否設置成功
firewall-cmd --list-all-zones
至此,centos7中mysql安裝並配置完成