Mysql 安裝和配置

Mysql 安裝

  • Mysql 安裝
    • 官網(wǎng):http://www.mysql.com/
    • 官網(wǎng)下載:http://dev.mysql.com/downloads/mysql/
    • 官網(wǎng) 5.5 下載:http://dev.mysql.com/downloads/mysql/5.5.html#downloads
    • 官網(wǎng) 5.6 下載:http://dev.mysql.com/downloads/mysql/5.6.html#downloads
    • 官網(wǎng) 5.7 下載:http://dev.mysql.com/downloads/mysql/5.7.html#downloads
    • 官網(wǎng)幫助中心:http://dev.mysql.com/doc/refman/5.6/en/source-installation.html
    • 此時(20160502) Mysql 5.5 最新版本為:5.5.48
    • 此時(20160502) Mysql 5.6 最新版本為:5.6.29
    • 此時(20160502) Mysql 5.7 最新版本為:5.7.11
    • 我個人習慣 /opt 目錄下創(chuàng)建一個目錄 setups 用來存放各種軟件安裝包;在 /usr 目錄下創(chuàng)建一個 program 用來存放各種解壓后的軟件包,下面的講解也都是基于此習慣
    • 我個人已經(jīng)使用了第三方源:EPEL、RepoForge,如果你出現(xiàn) yum install XXXXX 安裝不成功的話,很有可能就是你沒有相關(guān)源,請查看我對源設(shè)置的文章
    • Mysql 5.6 下載:wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.29.tar.gz (大小:31 M)
    • Mysql 5.7 下載:wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.11.tar.gz (大小:47 M)
    • 我們這次安裝以 5.6 為實例
      • 進入下載目錄:cd /opt/setups
      • 解壓壓縮包:tar zxvf mysql-5.6.29.tar.gz
      • 移到解壓包:mv /opt/setups/mysql-5.6.29 /usr/program/
      • 安裝依賴包、編譯包:yum install -y make gcc-c++ cmake bison-devel ncurses-devel
      • 進入解壓目錄:cd /usr/program/mysql-5.6.29/
      • 生成安裝目錄:mkdir -p /usr/program/mysql/data
      • 生成配置(使用 InnoDB):sudo cmake -DCMAKE_INSTALL_PREFIX=/usr/program/mysql -DMYSQL_DATADIR=/usr/program/mysql/data -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1
      • 編譯:sudo make,這個過程比較漫長,一般都在 30 分鐘左右,具體還得看機子配置,如果最后結(jié)果有 error,建議刪除整個 mysql 目錄后重新解壓一個出來繼續(xù)處理
      • 安裝:sudo make install
      • 配置開機啟動:
        • sudo cp /usr/program/mysql-5.6.29/support-files/mysql.server /etc/init.d/mysql
        • sudo chmod 755 /etc/init.d/mysql
        • sudo chkconfig mysql on
      • 復制一份配置文件: sudo cp /usr/program/mysql-5.6.29/support-files/my-default.cnf /etc/my.cnf
      • 刪除安裝的目錄:rm -rf /usr/program/mysql-5.6.29/
      • 添加組和用戶及安裝目錄權(quán)限
        • sudo groupadd mysql #添加組
        • sudo useradd -g mysql mysql -s /bin/false #創(chuàng)建用戶mysql并加入到mysql組,不允許mysql用戶直接登錄系統(tǒng)
        • sudo chown -R mysql:mysql /usr/program/mysql/data #設(shè)置MySQL數(shù)據(jù)庫目錄權(quán)限
      • 初始化數(shù)據(jù)庫:sudo /usr/program/mysql/scripts/mysql_install_db --basedir=/usr/program/mysql --datadir=/usr/program/mysql/data --skip-name-resolve --user=mysql
      • 啟動 Mysql 服務器:service mysql start
      • 查看是否已經(jīng)啟動了:ps aux | grep mysql
      • 常用命令軟連接,才可以在終端直接使用:mysql 和 mysqladmin 命令
        • sudo ln -s /usr/program/mysql/bin/mysql /usr/bin
        • sudo ln -s /usr/program/mysql/bin/mysqladmin /usr/bin

修改 root 賬號密碼

  • 默認安裝情況下,root 的密碼是空,所以為了方便我們可以設(shè)置一個密碼,假設(shè)我設(shè)置為:123456
  • 終端下執(zhí)行:mysql -uroot
    • 現(xiàn)在進入了 mysql 命令行管理界面,輸入:SET PASSWORD = PASSWORD('123456');
  • 修改密碼后,終端下執(zhí)行:mysql -uroot -p
    • 根據(jù)提示,輸入密碼進度 mysql 命令行狀態(tài)。
  • 如果你在其他機子上連接該數(shù)據(jù)庫機子報:Access denied for user 'root'@'localhost' (using password: YES)
    • 解決辦法:
    • 在終端中執(zhí)行:service mysql stop
    • 在終端中執(zhí)行:/usr/program/mysql/bin/mysqld --skip-grant-tables
      • 此時 MySQL 服務會一直處于監(jiān)聽狀態(tài),你需要另起一個終端窗口來執(zhí)行接下來的操作
      • 在終端中執(zhí)行:mysql -u root mysql
      • 進入 MySQL 命令后執(zhí)行:UPDATE user SET Password=PASSWORD('填寫你要的新密碼') where USER='root';FLUSH PRIVILEGES;
      • 重啟 MySQL 服務:service mysql restart

Mysql 配置

  • 官網(wǎng)配置參數(shù)解釋:http://dev.mysql.com/doc/refman/5.6/en/mysqld-option-tables.html
  • 找一下當前系統(tǒng)中有多少個 my.cnf 文件:find / -name "my.cnf",我查到的結(jié)果:
    /etc/my.cnf
    /usr/program/mysql/my.cnf
    /usr/program/mysql/mysql-test/suite/ndb/my.cnf
    /usr/program/mysql/mysql-test/suite/ndb_big/my.cnf
    .............
    /usr/program/mysql/mysql-test/suite/ndb_rpl/my.cnf
    
    • 保留 /etc/my.cnf/usr/program/mysql/mysql-test/ 目錄下配置文件,其他刪除掉。

MySQL 主從復制

環(huán)境說明和注意點

  • 假設(shè)有兩臺服務器,一臺做主,一臺做從
    • MySQL 主信息:
      • IP:12.168.1.113
      • 端口:3306
    • MySQL 從信息:
      • IP:12.168.1.115
      • 端口:3306
  • 注意點
    • 主 DB server 和從 DB server 數(shù)據(jù)庫的版本一致
    • 主 DB server 和從 DB server 數(shù)據(jù)庫數(shù)據(jù)一致
    • 主 DB server 開啟二進制日志,主 DB server 和從 DB server 的 server-id 都必須唯一
  • 優(yōu)先操作:
    • 把主庫的數(shù)據(jù)庫復制到從庫并導入

主庫機子操作

  • 主庫操作步驟

    • 創(chuàng)建一個目錄:mkdir -p /usr/program/mysql/data/mysql-bin
    • 主 DB 開啟二進制日志功能:vim /etc/my.cnf
      • 添加一行:log-bin = /usr/program/mysql/data/mysql-bin
      • 指定同步的數(shù)據(jù)庫,如果不指定則同步全部數(shù)據(jù)庫,其中 ssm 是我的數(shù)據(jù)庫名:binlog-do-db=ssm
    • 重啟主庫 MySQL 服務
    • 進入 MySQL 命令行狀態(tài),執(zhí)行 SQL 語句查詢狀態(tài):SHOW MASTER STATUS;
      • 在顯示的結(jié)果中,我們需要記錄下 FilePosition 值,等下從庫配置有用。
    • 設(shè)置授權(quán)用戶 slave01 使用 123456 密碼登錄主庫,這里 @ 后的 IP 為從庫機子的 IP 地址,如果從庫的機子有多個,我們需要多個這個 SQL 語句。
    grant replication slave on *.* to 'slave01'@'192.168.1.135' identified by '123456';
    flush privileges;
    

從庫機子操作

  • 從庫操作步驟
  • 測試從庫機子是否能連上主庫機子:sudo mysql -h 192.168.1.105 -u slave01 -p,必須要連上下面的操作才有意義。
    • 由于不能排除是不是系統(tǒng)防火墻的問題,所以建議連不上臨時關(guān)掉防火墻:service iptables stop
    • 或是添加防火墻規(guī)則:
      • 添加規(guī)則:sudo iptables -I INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
      • 保存規(guī)則:sudo service iptables save
      • 重啟 iptables:sudo service iptables restart
  • 修改配置文件:vim /etc/my.cnf,把 server-id 改為跟主庫不一樣
  • 在進入 MySQL 的命令行狀態(tài)下,輸入下面 SQL:
CHANGE MASTER TO
master_host='192.168.1.200',
master_user='slave01',
master_password='123456',
master_port=3306,
master_log_file='mysql3306-bin.000006',>>>這個值復制剛剛讓你記錄的值
master_log_pos=1120;>>>這個值復制剛剛讓你記錄的值
  • 執(zhí)行該 SQL 語句,啟動 slave 同步:START SLAVE;
  • 執(zhí)行該 SQL 語句,查看從庫機子同步狀態(tài):SHOW SLAVE STATUS;
  • 在查看結(jié)果中必須下面兩個值都是 Yes 才表示配置成功:
    • Slave_IO_Running:Yes
      • 如果不是 Yes 也不是 No,而是 Connecting,那就表示從機連不上主庫,需要你進一步排查連接問題。
    • Slave_SQL_Running:Yes
  • 如果你的 Slave_IO_Running 是 No, 那你可以檢查從庫下的錯誤日志:cat /usr/program/mysql/data/mysql-error.log
    • 如果里面提示 uuid 錯誤,你可以編輯從庫的這個配置文件:vim /usr/program/mysql/data/auto.cnf,把配置文件中的:server-uuid 值隨便改一下,保證和主庫是不一樣的。

資料

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,517評論 6 539
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,087評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,521評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,493評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,207評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,603評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,624評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,813評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,364評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,110評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,305評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,874評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,532評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,953評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,209評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,033評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,268評論 2 375

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