Mysql 搭建手冊

Mysql安裝

介紹

安裝方法有很多這里我介紹兩種,1、yum 安裝mysql;2、手動安裝mysql

Mysql yum安裝

卸載已有版本

  • 查看mysql版本
    mysql -v
  1. 安裝前导匣,我們可以檢測系統(tǒng)是否自帶安裝 MySQL:
    rpm -qa | grep mysql
  2. 如果你系統(tǒng)有安裝,那可以選擇進(jìn)行卸載:
    rpm -e mysql  普通刪除模式
    rpm -e --nodeps mysql  
    強(qiáng)力刪除模式茸时,如果使用上面命令刪除時贡定,提示有依賴的其它文件,則用該命令可以對其進(jìn)行強(qiáng)力刪除
  3. 安裝
    yum -y install wget
    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
    rpm -ivh mysql-community-release-el7-5.noarch.rpm
    yum update
    yum install mysql-server
mysql 5.7
wget http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm
安裝mysql源
yum localinstall mysql57-community-release-el6-7.noarch.rpm
檢查mysql源是否安裝成功
yum repolist enabled | grep "mysql.*-community.*"
  1. 初始化 MySQL:
    mysqld --initialize
  2. 啟動 MySQL:
    systemctl start mysqld
  3. 查看 MySQL 運(yùn)行狀態(tài):
    systemctl status mysqld

Mysql 手動安裝

下載

參考:http://www.cnblogs.com/feiye512/p/9257687.html

1可都、下載

下載地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads

下載版本:我這里選擇的5.6.33缓待,通用版,linux下64位

也可以直接復(fù)制64位的下載地址渠牲,通過命令下載:
cd /usr/local/src

wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
  1. 解壓
    tar -zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
    復(fù)制解壓后的mysql目錄旋炒,mysql目錄不要手動創(chuàng)建
    cp -r mysql-5.6.33-linux-glibc2.5-x86_64 /usr/local/mysql
  2. 添加用戶組和用戶
    添加用戶組
    groupadd mysql
    添加用戶mysql 到用戶組mysql
    useradd -g mysql mysql
    passwd mysql
    輸入密碼 123456
  3. 賦用戶權(quán)限
    cd /usr/local/mysql
    修改當(dāng)前目錄擁有者為mysql用戶:執(zhí)行命令
    /usr/local/mysql目錄權(quán)限為mysql用戶
    chown -R mysql:mysql ./
  4. 安裝
    ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/mysql
  • 如果遇見錯誤如下:
  1. bash: ./vmware-install.pl: /usr/bin/perl: bad interpreter: 沒有那個文件或目錄
    解決方法
    yum install perl gcc kernel-devel
    yum upgrade kernel kernel-devel

  2. FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:
    Data::Dumper
    解決方法 :安裝autoconf庫
    yum -y install autoconf

  3. 啟動腳本
    cp support-files/mysql.server /etc/init.d/mysqld
    chmod 755 /etc/init.d/mysqld
    cp support-files/my-default.cnf /etc/my.cnf

  4. 修改啟動腳本
    vi /etc/init.d/mysqld
    修改項(xiàng):

basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/mysql
  1. 啟動服務(wù)
    service mysqld start

Starting MySQL. SUCCESS!

  1. 測試連接
    cd /usr/local
    ./mysql/bin/mysql -uroot
  2. 加入環(huán)境變量,編輯 /etc/profile签杈,這樣可以在任何地方用mysql命令了
    vi /etc/profile
export PATH=$PATH:/usr/local/mysql/bin

source /etc/profile

  • 測試連接
    mysql -uroot
  1. 查看運(yùn)行狀態(tài)
    service mysqld status
mysql安裝后
問題一:密碼登錄問題
  1. 跳過密碼
    mysql登錄報錯更新密碼(ERROR 1045 (28000))
    重置密碼的第一步就是跳過MySQL的密碼認(rèn)證過程瘫镇,方法如下:
    vim /etc/my.cnf
    注:windows下修改的是my.ini
[mysqld]
skip-grant-tables
  1. 重啟
    /etc/init.d/mysql restart(有些用戶可能需要使用/etc/init.d/mysqld restart)
    或者service mysql restart

  2. 密碼重置
    mysql -uroot
    use mysql;
    mysql> update user set password=password("root") where user="root";
    mysql> flush privileges;

  3. 然后去掉skip-grant-tables配置文件,重啟即可

問題二:修改mysql遠(yuǎn)程連接權(quán)限
  1. 創(chuàng)建用戶用來遠(yuǎn)程連接
mysql -uroot
use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
flush privileges;     
  1. 查看是否成功
    查詢數(shù)據(jù)庫的用戶(看到如下內(nèi)容表示創(chuàng)建新用戶成功了)
    SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
  2. 修改my.cnf 文件的IP限制配置
    修改配置文件
    vim /etc/my.cnf
    將bind-address = 127.0.0.1
    設(shè)置成bind-address = 0.0.0.0(設(shè)備地址)
    重新啟動
    查看端口號
    Show global variables like 'port';

Mysql主從復(fù)制

介紹

首先安裝倆數(shù)據(jù)庫,一個作為主庫,一個作為從庫,安裝步驟如mysql手動安裝.
主從復(fù)制配置過程
主從服務(wù)器分別作以下操作:
版本一致
初始化表答姥,并在后臺啟動mysql
修改root的密碼
兩臺mysql:192.168.101:3306 mysql:192.168.103:3306

Mysql主從復(fù)制

修改配置文件

修改主服務(wù)器master:
vi /etc/my.cnf

[mysqld]
log-bin=mysql-bin
server-id=101
sync_binlog = 1
binlog_checksum = none
binlog_format = mixed
auto-increment-increment = 2
auto-increment-offset = 1
slave-skip-errors = all

詳細(xì)介紹:
server-id=1 #數(shù)據(jù)庫唯一ID铣除,主從的標(biāo)識號絕對不能重復(fù)。#[必須]
log-bin=mysql-bin #開啟bin-log鹦付,并指定文件目錄和文件名前綴#[必須]
binlog-do-db=test #需要同步的數(shù)據(jù)庫尚粘。如果是多個同步庫,就以此格式另寫幾行即可敲长。如果不指明對某個具體庫同步郎嫁,就去掉此行,表示同步所有庫(除了ignore忽略的庫)祈噪。
binlog-ignore-db=mysql #不同步mysql系統(tǒng)數(shù)據(jù)庫泽铛。如果是多個不同步庫,就以此格式另寫幾行辑鲤;也可以在一行盔腔,中間逗號隔開。
sync_binlog = 1 #確保binlog日志寫入后與硬盤同步
binlog_checksum = none #跳過現(xiàn)有的采用checksum的事件遂填,mysql5.6.5以后的版本中binlog_checksum=crc32,而低版本都是binlog_checksum=none
binlog_format = mixed #bin-log日志文件格式铲觉,設(shè)置為MIXED可以防止主鍵重復(fù)。
3吓坚、修改從服務(wù)器slave:
vi /etc/my.cnf

[mysqld]
log-bin=mysql-bin
server-id=103
sync_binlog = 1
binlog_checksum = none
binlog_format = mixed
auto-increment-increment = 2
auto-increment-offset = 2
slave-skip-errors = all

4撵幽、重啟兩臺服務(wù)器的mysql
/etc/init.d/mysql restart
5、在主服務(wù)器上建立帳戶并授權(quán)slave:

mysql -uroot -proot  
CREATE USER 'repl'@'%' IDENTIFIED BY '123456';
grant replication slave,replication client on *.* to 'repl'@'192.168.3.%' identified by "123456";
mysql> flush privileges;
mysql> show grants for repl@'192.168.3.%'; 查看指定用戶權(quán)限

一般不用root帳號礁击,%表示所有客戶端都可能連盐杂,只要帳號逗载,密碼正確,此處可用具體客戶端IP代替链烈,如192.168.145.226厉斟,加強(qiáng)安全。
6强衡、登錄主服務(wù)器的mysql擦秽,查詢master的狀態(tài)
mysql>show master status;


 +------------------+----------+--------------+------------------+

 | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

 +------------------+----------+--------------+------------------+

 | mysql-bin.000002 | 318 | | |

 +------------------+----------+--------------+------------------+

 1 row in set (0.00 sec)

注:執(zhí)行完此步驟后不要再操作主服務(wù)器MYSQL,防止主服務(wù)器狀態(tài)值變化
flush privileges;

配置從服務(wù)器Slave

7漩勤、配置從服務(wù)器Slave:
CREATE USER 'repl'@'%' IDENTIFIED BY '123456';
mysql>change master to master_host='192.168.3.100',master_user='repl',master_password='123456', master_log_file='mysql-bin.000023',master_log_pos=191; //注意不要斷開感挥,318數(shù)字前后無單引號。
如果運(yùn)行報錯:
則運(yùn)行change master to master_auto_position=0
Mysql>start slave; //啟動從服務(wù)器復(fù)制功能
RESET SLAVE; //重置從服務(wù)器復(fù)制功能
stop slave; //停掉從服務(wù)器復(fù)制功能

  • 檢查從服務(wù)器復(fù)制功能狀態(tài)
    檢查從服務(wù)器復(fù)制功能狀態(tài)
    mysql> show slave status\G;
 *************************** 1\. row ***************************
 Slave_IO_State: Waiting for master to send event
 Master_Host: 192.168.2.222 //主服務(wù)器地址
 Master_User: mysync //授權(quán)帳戶名越败,盡量避免使用root
 Master_Port: 3306 //數(shù)據(jù)庫端口触幼,部分版本沒有此行
 Connect_Retry: 60
 Master_Log_File: mysql-bin.000004
 Read_Master_Log_Pos: 600 //#同步讀取二進(jìn)制日志的位置,大于等于 
 Exec_Master_Log_Pos
 Relay_Log_File: ddte-relay-bin.000003
 Relay_Log_Pos: 251
 Relay_Master_Log_File: mysql-bin.000004
 Slave_IO_Running: Yes //此狀態(tài)必須YES
 Slave_SQL_Running: Yes //此狀態(tài)必須YES

注:Slave_IO及Slave_SQL進(jìn)程必須正常運(yùn)行究飞,即YES狀態(tài)置谦,否則都是錯誤的狀態(tài)(如:其中一個NO均屬錯誤)。
以上操作過程亿傅,主從服務(wù)器配置完成媒峡。
flush privileges;

主主復(fù)制

按上面操作反向即可,主主復(fù)制袱蜡,最好將庫鎖住丝蹭,僅僅允許讀,以保證數(shù)據(jù)一致性坪蚁;待主主同步環(huán)境部署后再解鎖;
鎖住后镜沽,就不能往表里寫數(shù)據(jù)敏晤,但是重啟mysql服務(wù)后就會自動解鎖!
mysql> flush tables with read lock; //注意該參數(shù)設(shè)置后缅茉,如果自己同步對方數(shù)據(jù)嘴脾,同步前一定要記得先解鎖!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蔬墩,一起剝皮案震驚了整個濱河市译打,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拇颅,老刑警劉巖奏司,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異樟插,居然都是意外死亡韵洋,警方通過查閱死者的電腦和手機(jī)竿刁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來搪缨,“玉大人食拜,你說我怎么就攤上這事「北啵” “怎么了负甸?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長痹届。 經(jīng)常有香客問我呻待,道長,這世上最難降的妖魔是什么短纵? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任带污,我火速辦了婚禮,結(jié)果婚禮上香到,老公的妹妹穿的比我還像新娘鱼冀。我一直安慰自己,他們只是感情好悠就,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布千绪。 她就那樣靜靜地躺著,像睡著了一般梗脾。 火紅的嫁衣襯著肌膚如雪荸型。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天炸茧,我揣著相機(jī)與錄音瑞妇,去河邊找鬼。 笑死梭冠,一個胖子當(dāng)著我的面吹牛辕狰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播控漠,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼蔓倍,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了盐捷?” 一聲冷哼從身側(cè)響起偶翅,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎碉渡,沒想到半個月后聚谁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡爆价,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年垦巴,在試婚紗的時候發(fā)現(xiàn)自己被綠了媳搪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡骤宣,死狀恐怖秦爆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情憔披,我是刑警寧澤等限,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站芬膝,受9級特大地震影響望门,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜锰霜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一筹误、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧癣缅,春花似錦厨剪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至屡立,卻和暖如春直晨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背膨俐。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工勇皇, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人焚刺。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓儒士,卻偏偏與公主長得像,于是被迫代替她去往敵國和親檩坚。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評論 2 355

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