1. 程式人生 > >Centos6.5伺服器環境搭建之安裝Mysql

Centos6.5伺服器環境搭建之安裝Mysql

之前自己按照自己的思路來安裝Mysql,可以使用,但是存在編碼的問題,在網上找過很多的mysql的教程,都沒能解決,可能是自己某些地方沒有操作正確,或者理解沒有到位。很尷尬,後面居然是我女朋友給我安裝教程,雖然有些地方還是有問題,經過簡單調整修改後,可以安裝成功正常使用。這種安裝方式比較繁瑣,我相信有更加簡單的方式,最近比較忙,還沒來得及去探索,但是我自己裝了好幾次,肯定是可以成功的。希望可以幫到需要的同學。如果有需要安裝包的,可以評論留言。

1、先檢查是否存在其它版本的mysql,檢查命令rpm -qa|grep -i mysql,若有,請先解除安裝(務必解除安裝乾淨,把裡面有的mysql資料儘量清理完)。
解除安裝
root使用者下命令rpm –e, 按如下順序解除安裝安裝包。
如:rpm -e mysql-community-server-5.7.9-1.el6.x86_64
rpm -e mysql-community-client-5.7.9-1.el6.x86_64
rpm -e mysql-community-libs-5.7.9-1.el6.x86_64
rpm -e mysql-community-common-5.7.9-1.el6.x86_64
注:若存在無法解除安裝的,可使用強制刪除命令,rpm -e xxxx –nodeps
說明:若刪除提示error reading information on service mysqld: Invalid argument,可使用命令rpm -e –nopreun –nopostun –nodeps
刪除如下目錄下的mysql殘留檔案:
rm -rf /var/lib/mysql
rm -rf /etc/my.cnf
2、安裝
Root使用者將mysql的安裝rpm包上傳到機器的/tmp目錄並安裝
依次安裝以下所有的rpm包有:
rpm -ivh mysql-community-common-5.7.16-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.16-1.el6.x86_64.rpm
rpm -ivh mysql-community-client-5.7.16-1.el6.x86_64.rpm
rpm -ivh mysql-community-server-5.7.16-1.el6.x86_64.rpm
每次安裝出現如下圖所示的100%,表示安裝成功。
這裡寫圖片描述


如果提示:error: Failed dependencies: libnuma.so.1()(64bit) is needed by mysql-community-server-5.7.16-1.el6.x86_64(這個問題在阿里雲伺服器安裝的時候遇到過)
解決方式:yum install numactl

注:如果想把mysql資料安裝到其它目錄,把/var/lib/mysql資料全部資料移過去,修改許可權,並把/etc/my.cnf的data專案配置為新目錄, 重啟資料庫。
執行mysqld –initialize –initialize-insecure 修改資料目錄
執行chown -R mysql:mysql /var/lib/mysql 修改許可權
配置
注意由於KMDS有一些欄位是中文欄位並設定不區分大小寫,要求mysql資料庫要支援中文欄位,所以要使用uft8字符集。配置 /etc/my.cnf,若沒有my.cnf檔案,直接新建就可以。
vi /etc/my.cnf 增加如下內容
join_buffer_size = 16M
sort_buffer_size = 4M
read_buffer_size=2M
read_rnd_buffer_size = 4M
sort_buffer_size = 2M
key_buffer_size=16M
query_cache_size=256M
query_cache_type=on ##優化查詢速度
tmp_table_size=128M
innodb_read_io_threads=30 ##最好與kcbp執行緒數一致
#Improved Purge Scheduling
innodb_purge_threads=1

skip-grant-tables ##忽略許可權表的限制,不用驗證密碼,直接登入
lower_case_table_names=1 ##不區分大小寫,匯流排mysql增加,其它mysql可不增加
character_set_server=utf8
#default_password_lifetime=0 #設定使用者密碼永不過期
wait_timeout=2880000
interactive_timeout = 2880000
啟動停止mysql
啟動 /etc/init.d/mysqld start
停止 /etc/init.d/mysqld stop
重啟 /etc/init.d/mysqld restart
檢視 /etc/init.d/mysqld status
注意:若第一次執行/etc/init.d/mysqld start啟動資料庫報類似如下錯誤,可進行如下操作(目前還沒遇到過)
這裡寫圖片描述

su - mysql
rm -rf /var/lib/mysql/*
/etc/init.d/mysqld start
啟動發現類似如下日誌,表示可以啟動
這裡寫圖片描述

su - root
/etc/init.d/mysqld restart
這裡寫圖片描述

執行如下語句將Mysql加入機器重啟自動啟動
chkconfig –add mysqld
chkconfig –level 2345 mysqld on
連線使用mysql
首次連線mysql,使用無密碼登入。
mysql –u root –h伺服器IP(-h和伺服器IP連線在一起的)
設定登入密碼:

mysql> use mysql;
mysql> insert  into `user`(`Host`,`User`,`Select_priv`,`Insert_priv`,`Update_priv`,`Delete_priv`,`Create_priv`,`Drop_priv`,`Reload_priv`,`Shutdown_priv`,`Process_priv`,`File_priv`,`Grant_priv`,`References_priv`,`Index_priv`,`Alter_priv`,`Show_db_priv`,`Super_priv`,`Create_tmp_table_priv`,`Lock_tables_priv`,`Execute_priv`,`Repl_slave_priv`,`Repl_client_priv`,`Create_view_priv`,`Show_view_priv`,`Create_routine_priv`,`Alter_routine_priv`,`Create_user_priv`,`Event_priv`,`Trigger_priv`,`Create_tablespace_priv`,`ssl_type`,`ssl_cipher`,`x509_issuer`,`x509_subject`,`max_questions`,`max_updates`,`max_connections`,`max_user_connections`,`plugin`,`authentication_string`,`password_expired`,`password_last_changed`,`password_lifetime`,`account_locked`) values('%','root','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'mysql_native_password','你的資料庫密碼','N','2015-11-25 14:20:23',NULL,'N');
mysql>exit

如上操作修改root使用者密碼為rootroot成功後,修改/etc/my.cnf 再次改成需要密碼登入並設定密碼永不過期,如下圖:
這裡寫圖片描述

再次重啟 /etc/init.d/mysqld restart
帶密碼連線.

如果登入失敗則執行以下步驟:

#1.停止mysql資料庫
/etc/init.d/mysqld stop
#2.執行如下命令(下面這條命令回車後沒有反應,執行第3步不需要等待)
mysqld_safe –user=mysql –skip-grant-tables –skip-networking &
#3.使用root登入mysql資料庫
mysql -u root mysql
#4.更新root密碼
mysql> UPDATE user SET authentication_string = password ( ‘你的資料庫密碼’ ) WHERE User = ‘root’ ;
#5.重新整理許可權
mysql> FLUSH PRIVILEGES;
#6.退出mysql
mysql> quit
#7.重啟mysql
/etc/init.d/mysqld restart
#8.使用root使用者重新登入mysql
mysql -uroot -p
Enter password: <輸入新設的密碼newpassword>

登入後如果執行任何語句都會提示:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

處理步驟(參看http://www.cnblogs.com/debmzhang/p/5013540.html ):
1、SET PASSWORD = PASSWORD(‘你的資料庫密碼’);
2、ALTER USER ‘root’@’localhost’ PASSWORD EXPIRE NEVER;
3、flush privileges;
4、quit;
再次登入即可。