說明:
從MySQL5.7.4起,以RPM包的方式安裝后的MySQL的部署,默認是安全的,并且有這些特點:
1. 在大多數情況下,你只需要安裝MySQL-server和MySQL-client安裝包就可以安裝上一個標準功能的MySQL。對于一個標準安裝來說,其他的安裝包不是必需的。
2. MySQL的安裝程序會創建一個單獨的root賬戶:'root'@'localhost',并自動為這個賬戶生成一個初始的隨機密碼,并將此密碼標志為已過期。
3. 對于MySQL5.7.6和更高的版本來說,初始的隨機root密碼是被寫入錯誤日志的。
對于MySQL5.7.4和5.7.5版本來說,密碼是被寫入以HOME環境變量命名的目錄中的.mysql_secret文件中的。mysql_secret文件是以只允許創建它的系統用戶訪問的600模式而創建的。
版本差異的產生,是因為自5.7.6版本起,數據目錄和root賬戶由mysqld --initialize來初始化,5.7.6以前的版本由mysql_install_db來初始化)。
4. 不創建MySQL匿名賬戶。
不創建測試數據庫。
作為上述操作所產生的結果,在安裝完成后你需要去啟動服務,以root身份,用初始的隨機密碼來進行連接,并且在連接后選擇一個新的密碼。在完成這些操作之前,root用戶無法做其他的任何事情
------------------------------------------------------------------------------------------------
Linux系統:CentOS 6.6
1. 創建一個名為mysql且沒有登錄權限的用戶和一個名為mysql的用戶組
groupadd -r mysql
useradd -r -g mysql -s /bin/false -M mysql
2. 卸載掉原有mysql
#查看該操作系統上是否已經安裝了mysql數據庫
rpm -qa | grep mysql
#通過 rpm -e 命令 或者 rpm -e --nodeps 命令卸載
rpm -e mysql? // 普通刪除模式
rpm -e --nodeps mysql? //? 強力刪除模式(包括依賴包)
#如果沒有安裝,只是有包,則remove
yum -y remove mysql-libs
#查看卸載是否成功
rpm -qa | grep mysql
3. 下載mysql安裝包
http://dev.mysql.com/downloads/mysql/
4. 解壓至指定目錄
tar xvf mysql-5.7.9-1.el6.x86_64.rpm-bundle.rar -C /usr/local/src
5. 使用rpm軟件包安裝mysql
#安裝依賴包
rpm -ivh mysql-community-common-5.7.9-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.9-1.el6.x86_64.rpm
#安裝客戶端
rpm -ivh mysql-community-client-5.7.9-1.el6.x86_64.rpm
#安裝服務端
rpm -ivh mysql-community-server-5.7.9-1.el6.x86_64.rpm
6. 根據/etc/my.cnf創建相應的文件,并授權
mkdir -p /var/run/mysql
mkdir -p /var/log/mysql
chown -R mysql:mysql /var/log/mysql
chown -R mysql:mysql /var/run/mysql
注:/etc/my.cnf中沒有basedir路徑,需要添加
basedir=/usr/local/mysql
7. 初始化數據庫
cd /usr/bin
#會為root賬戶生成一個隨機的初始密碼( 密碼位置:/var/log/mysqld.log )
#使用命令:mysql -u root -p,然后輸入密碼來登錄MySQL
mysqld --initialize --user=mysql
#不會為root賬戶生成一個隨機的初始密碼
#使用命令:mysql -u root --skip-password直接登錄MySQL
mysqld --initialize-insecure --user=mysql
注:初始化時,mysqld服務會檢查數據目錄是否存在:
如果數據目錄不存在,mysqld則會創建它。
如果數據目錄存在,且不是空目錄(即包含有文件或子目錄),mysqld會顯示一條錯誤信息并中止:
[ERROR] --initialize specified but the data
directory exists. Aborting.
解決方案: 將數據目錄重命名后,重新再初始化一次 mv /var/lib/mysql? /var/lib/mysql.bak8.
8. 配置mysql服務開機自動啟動
#檢查自啟動項列表中沒有mysqld這個,如果沒有就添加mysqld:
chkconfig --list mysqld
chkconfig --add mysqld
#設置開機啟動
chkconfig mysqld on
8. 啟動mysql
#啟動mysqld服務
service mysqld start
#檢查mysqld是否已經啟動
service mysqld status
9. 修改mysql用戶密碼(初始root密碼文件在/var/log/mysqld.log)
mysql -uroot-p
mysql> alter user 'root'@'localhost' identified by 'Mysql.123';
10. 已root用戶身份登錄
mysql -uroot -pMysql.123