服務(wù)器搭建補充一——MySQL安裝、配置文件詳解

之前寫過一篇mysql安裝但是那篇文章的安裝是非常失敗的搁廓,因此本文再次記錄后續(xù)學(xué)習(xí)mysql安裝、配置文件詳解等耕皮。前面的文章使用yum安裝(版本低)境蜕、rpm安裝依賴文件錯誤(本文解決這個問題)

1. 安裝環(huán)境

系統(tǒng):Centos6.5 64位
Mysql版本:MySQL-server-5.6.29-1.el6.x86_64.rpm (server)
      MySQL-client-5.6.29-1.el6.x86_64.rpm (client)
      MySQL-devel-5.6.29-1.el6.x86_64.rpm (開發(fā)使用包)
      MySQL-shared-5.6.38-1.el6.x86_64.rpm (庫文件)
      MySQL-shared-compat-5.6.38-1.el6.x86_64.rpm (庫文件)
理論上說安裝前面三個包已經(jīng)可以使用了,但是在使用php時候還是需要安裝后面兩個包的凌停,否則存在各種報錯的可能粱年。

2.卸載

rpm -qa | grep -i mysql
查看mysql是否安裝
① 如果是 rpm 安裝的話,可以用rpm -e mysql-server
② 如果是yum安裝的苦锨,可以用 yum remove mysql刪除MySQL安裝文件夾

yum -y remove mysql-libs*
yum install numactl libaio perl perl-devel #卸載以后會導(dǎo)致依賴包被卸載逼泣,需要在安裝趴泌,否則后期安裝時候報錯
在上篇mysql安裝中就是缺少一些依賴包

3. 安裝mysql

1、下載mysql的rpm安裝包
① 在mysql官網(wǎng)中可以下載對應(yīng)安裝包
② 下載本文提供安裝包
2拉庶、安裝mysql的rpm安裝包
安裝后可以使用rpm –ql MySQL-server查看安裝的目錄信息
rpm -ivh MySQL-*可以使用*一起全部安裝 也可以一個個安裝

[root@msyql opt]# rpm -ivh MySQL-*
warning: MySQL-client-5.6.29-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing...                ########################################### [100%]
   1:MySQL-shared-compat    ########################################### [ 20%]
   2:MySQL-shared           ########################################### [ 40%]
   3:MySQL-server           ########################################### [ 60%]
warning: user mysql does not exist - using root  #這里是因為沒有新建mysql賬戶導(dǎo)致不影響(其實安裝后會生成mysql賬戶)
warning: group mysql does not exist - using root
A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !
You will find that password in '/root/.mysql_secret'. #第一次啟動時mysqlroot賬戶的隨機密碼所在 第一次進入后可以使用set password設(shè)置密碼
You must change that password on your first connect,
no other statement but 'SET PASSWORD' will be accepted.
See the manual for the semantics of the 'password expired' flag.
Also, the account for the anonymous user has been removed.
In addition, you can run:
  /usr/bin/mysql_secure_installation
New default config file was created as /usr/my.cnf and #配置文件所在的位置
will be used by default by the server when you start it.
You may edit this file to change server settings
   4:MySQL-devel            ########################################### [ 80%]
   5:MySQL-client           ########################################### [100%]

有兩個地方需要注意: /root/.mysql_secret root賬戶的密碼 /usr/my.cnf 配置文件位置(建議移動到/etc/my.cnf嗜憔,也可以刪除后/etc/新建my.cnf)

4. 配置文件:

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

[mysqld]

# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M 
port=3306 #端口號
datadir=/home/app/mysql #mysql位置
socket=/home/app/mysql/mysql.socket
#錯誤日志
log-error=/home/app/mysql/mysqld.log

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
lower_case_table_names = 1
explicit_defaults_for_timestamp

#慢日志設(shè)置
slow_query_log=1
long_query_time=1
slow-query-log-file=/home/app/mysql/slow.log  

#內(nèi)存設(shè)置
#innodb_buffer_pool用于緩存表和索引數(shù)據(jù),默認(rèn)值128M,不得小于5M
#在MySQL專用服務(wù)器中建議設(shè)置為物理內(nèi)存的50%-75%,但是要小心其他內(nèi)存使用
#  操作系統(tǒng)頁對內(nèi)存的爭用
#  InnoDB其他內(nèi)存使用,總內(nèi)存占用可能超過約innodb_buffer_pool值的10%
#  內(nèi)存空間需要時連續(xù)的,在Windows下可能成為問題
#  初始化buffer_pool的時間與innodb_buffer_pool大小成正比
#當(dāng)innodb_buffer_pool大于1G時,設(shè)置innodb_buffer_pool_instances大于1可以提升服務(wù)器擴展性
#innodb_buffer_pool_instances用于設(shè)置buffer_pool的分區(qū)數(shù)量,最小為1,最大為64
# 5.6.5及以前版本默認(rèn)為1
# 5.6.6在Windows下默認(rèn)自動設(shè)定,當(dāng)innodb_buffer_pool_size>1.3GB,innodb_buffer_pool_instances=innodb_buffer_pool_size/128MB
# 5.6.6在其他系統(tǒng)下當(dāng)innodb_buffer_pool_size<1G,默認(rèn)為1;大于1G默認(rèn)為8
innodb_buffer_pool_size=8G

#日志設(shè)置
#innodb_log_file_size設(shè)置每個日志文件大小,總的日志大小為innodb_log_file_size * innodb_log_files_in_group
# 總?cè)罩敬笮?yīng)設(shè)置可以容納1小時的寫活動的重做日志.值越大磁盤操作越少,但異常恢復(fù)時間越長
# 5.6.2及之前默認(rèn)為5M,最小1M,最大值為4GB/innodb_log_files_in_group
# 5.6.3-5.6.7默認(rèn)為5M,最小1M,最大值為512GB/innodb_log_files_in_group
# 5.6.8默認(rèn)為48M,最大值為512GB/innodb_log_files_in_group
# innodb_log_files_in_group最小值為2,最大值100,默認(rèn)為2
innodb_log_file_size=2G
innodb_log_files_in_group=2

#innodb_flush_method定義將數(shù)據(jù)輸出到數(shù)據(jù)文件和日志文件的方法,影響I/O吞吐量
#Unix下默認(rèn)使用fsync
#5.6.6及以前Unix版本支持fsync\O_DSYNC\O_DIRECT,系統(tǒng)支持時建議設(shè)置為O_DIRECT
#5.6.7及以后Unix版本支持fsync\O_DSYNC\O_DIRECT\O_DIRECT_NO_FSYNC
#Windows版本支持async_unbuffered\normal\unbuffered,默認(rèn)使用async_unbuffered,建議使用默認(rèn)值
#O_DIRECT:可用于一些Linux版本,FreeBSD\Solaris
innodb_flush_method=O_DIRECT

#innodb_io_capacity用來當(dāng)刷新臟數(shù)據(jù)時氏仗,控制MySQL每秒執(zhí)行的寫IO量吉捶。默認(rèn)200,最小100
#innodb_io_capacity_max用來在壓力下,控制當(dāng)刷新臟數(shù)據(jù)時MySQL每秒執(zhí)行的寫IO量
# innodb_io_capacity_max最小100.默認(rèn)為為innodb_io_capacity的兩倍皆尔,但默認(rèn)不小于2000
# 對于低端SSD,建議innodb_io_capacity=200呐舔,innodb_io_capacity_max=2000
# 對于高端SSD,建議innodb_io_capacity=1000,innodb_io_capacity_max=2500
# 對于5400或7200轉(zhuǎn)機械硬盤建議innodb_io_capacity=100慷蠕,innodb_io_capacity_max在200-400
# 對于多塊磁盤珊拼,根據(jù)單塊磁盤值*并發(fā)數(shù)量計算,innodb_io_capacity_max=2000
innodb_io_capacity=1000
innodb_io_capacity_max=2500

character-set-server=utf8
collation-server=utf8_general_ci

#設(shè)置服務(wù)器默認(rèn)字符集
character-set-server=utf8
collation-server=utf8_general_ci
#避免DNS解析
skip-name-resolve
#客戶端最大允許的錯誤數(shù)量流炕,超出將禁止連接
max-connect-errors=100000
#最大的客戶端連接數(shù)
max-connections=2000

#MySQL關(guān)閉非活動連接的等待時間澎现,默認(rèn)為28800(8小時)
wait_timeout=381600
#MySQL關(guān)閉活動連接的等待時間,默認(rèn)為28800(8小時)
interactive_timeout=381600

#innodb_thread_concurrency設(shè)置最大并發(fā)線程數(shù),默認(rèn)為0,即不限制
#1每辟、并發(fā)線程低于64可設(shè)置為0
#2剑辫、當(dāng)CPU一直或偶爾很高時,設(shè)置為128渠欺,并降到96, 80, 64通過測試得出最佳值
#3妹蔽、也可以設(shè)置為CPU核數(shù)或小于該值
#innodb_thread_concurrency

[mysql]
default-character-set=utf8

[client]
default-character-set=utf8
socket=/home/app/mysql/mysql.socket

上述配置編輯到/etc/my.cnf,并且根據(jù)你自己的需要修改配置文件內(nèi)容,主要內(nèi)容:端口號挠将,存儲位置胳岂、內(nèi)存設(shè)置等

mkdir -p /home/app/mysql  #-p強制創(chuàng)建上層目錄
cp -R /var/lib/mysql/* /home/app/mysql #遞歸拷貝全部文件

chown  -R mysql:mysql  /home/app/mysql #更改文件夾和所有文件的所有權(quán)

如果出現(xiàn)報錯:Starting MySQL... ERROR! The server quit without updating PID file (/home/app/mysql//mysql.pid)
如果更改所有權(quán)還是無效,請查看SELinux狀態(tài)

    關(guān)閉SELINUX
    查看SELinux狀態(tài):
    1捐名、/usr/sbin/sestatus -v      ##如果SELinux status參數(shù)為enabled即為開啟狀態(tài)
    SELinux status:                 enabled
    2旦万、getenforce                 ##也可以用這個命令檢查
    關(guān)閉SELinux:
    1、臨時關(guān)閉(不用重啟機器):
    setenforce 0          ##設(shè)置SELinux 成為permissive模式
                          ##setenforce 1 設(shè)置SELinux 成為enforcing模式
    2镶蹋、修改配置文件需要重啟機器:
    修改vim /etc/selinux/config 文件
    將SELINUX=enforcing改為SELINUX=disabled
    重啟機器即可

如果還是無效請查看是否有之前安裝的mysql殘留文件成艘,清除干凈。如果是使用一段時間后出現(xiàn)這個報錯贺归,可能原因已經(jīng)啟動mysql淆两,再就是之前有意外斷電導(dǎo)致數(shù)據(jù)庫問題,在數(shù)據(jù)庫存儲位置找到xxx.pid ib_logfile0 ib_logfile1刪除在重啟拂酣。

啟動時候后如果連接出現(xiàn)報錯:socket連接之類 /var/lib/mysql/mysql.sock
ln -s /home/app/mysql/mysql.socket /var/lib/mysql/mysql.sock
出現(xiàn)上述報錯可以做一個軟連接秋冰。也可以在修改配置文件,在[client]增加socket=/home/app/mysql/mysql.socket
登錄mysql修改密碼(第一次登錄使用隨機密碼)

root的隨機密碼位于/root/.mysql_secret中
cat /root/.mysql_secret
# The random password set for the root user at Mon Apr 16 17:10:54 2018 (local time): 65ws1DX5ZvZau254
mysql> SET PASSWORD FOR 'root'@'localhost' =PASSWORD('wlw123456');

5. mysql添加用戶授權(quán)

mysql> SET PASSWORD FOR 'root'@'localhost' =PASSWORD('wlw123456'); #設(shè)置root密碼
Query OK, 0 rows affected (0.02 sec)

mysql> grant all privileges on *.* TO 'mysql'@'%' identified by "wlw123456#@!"; #新建遠(yuǎn)程管理和使用賬戶婶熬,并授權(quán)
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY "zabbix"; #新建監(jiān)控賬戶剑勾,并授權(quán)
Query OK, 0 rows affected (0.00 sec)

mysql> 
mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)

關(guān)于mysql簡單命令可以參考文檔mysql簡單入門

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末埃撵,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子虽另,更是在濱河造成了極大的恐慌暂刘,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捂刺,死亡現(xiàn)場離奇詭異谣拣,居然都是意外死亡,警方通過查閱死者的電腦和手機族展,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門森缠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人仪缸,你說我怎么就攤上這事贵涵。” “怎么了腹殿?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵独悴,是天一觀的道長。 經(jīng)常有香客問我锣尉,道長,這世上最難降的妖魔是什么决采? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任自沧,我火速辦了婚禮,結(jié)果婚禮上树瞭,老公的妹妹穿的比我還像新娘拇厢。我一直安慰自己,他們只是感情好晒喷,可當(dāng)我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布孝偎。 她就那樣靜靜地躺著,像睡著了一般凉敲。 火紅的嫁衣襯著肌膚如雪衣盾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天爷抓,我揣著相機與錄音势决,去河邊找鬼。 笑死蓝撇,一個胖子當(dāng)著我的面吹牛果复,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播渤昌,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼虽抄,長吁一口氣:“原來是場噩夢啊……” “哼走搁!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起迈窟,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤私植,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后菠隆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體兵琳,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年骇径,在試婚紗的時候發(fā)現(xiàn)自己被綠了躯肌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡破衔,死狀恐怖清女,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情晰筛,我是刑警寧澤嫡丙,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站读第,受9級特大地震影響曙博,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜怜瞒,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一父泳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧吴汪,春花似錦惠窄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至霜运,卻和暖如春脾歇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背觉渴。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工介劫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人案淋。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓座韵,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子誉碴,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容