Mysql系列三:Centos6下安装Mysql和Mysql主从复制的搭建
一、Centos6下安裝Mysql
檢測下系統有沒有自帶的mysql:yum list installed | grep mysql,?
如果已經有的話執行命令yum -y remove mysql-libs.x86_64卸載已經安裝的mysql。
1.?系統約定
安裝文件下載目錄:/data/software
Mysql目錄安裝位置:/usr/local/mysql
數據庫保存位置:/data/mysql
日志保存位置:/data/log/mysql
2. 下載mysql
執行如下命名:
mkdir -p /data/software cd /data/software?
--下載安裝包?
在官網:http://dev.mysql.com/downloads/mysql/?中,選擇以下版本的mysql下載:
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz說明:此時如果提示bash: wget: command not found,執行yum -y install wget,再執行wget下載命令
3. 解壓壓縮包到目標位置
cd /data/software--解壓壓縮包
tar -xzvf /software/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz--移動并修改文件名
mv /software/mysql-5.7.17-linux-glibc2.5-x86_64 /usr/local/mysql4. 創建數據倉庫目錄
mkdir -p /data/mysql5. 新建mysql用戶、組及目錄
?說明:這里如果提示useradd:“mysql”組不存在,執行groupadd mysql添加組以后再執行
6. 改變目錄屬有者
cd /usr/local/mysql chown -R mysql . chgrp -R mysql . chown -R mysql /data/mysql?
7. 配置參數
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql說明:
這里可能會報如下的錯誤
?
解決方法:yum install -y libaio
?解決完錯誤以后繼續執行:# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
?此處需要注意記錄生成的臨時密碼,如上文結尾處的:)u!7G!Q3jZ>&
繼續執行:
bin/mysql_ssl_rsa_setup --datadir=/data/mysql?
8. 修改系統配置文件
cd /usr/local/mysql/support-files cp my-default.cnf /etc/my.cnf cp mysql.server /etc/init.d/mysql vim /etc/init.d/mysql修改以下內容:
9. 啟動和遠程連接mysql
/etc/init.d/mysql start--登陸mysql
mysql -hlocalhost -uroot -p說明:
如果出現:-bash: mysql: command not found
就執行:?# ln -s /usr/local/mysql/bin/mysql /usr/bin --沒有出現就不用執行
--輸入第6步生成的臨時密碼
--修改密碼
mysql> set password=password('123456');
--設置root賬戶的host地址(修改了才可以遠程連接)
mysql>grant all privileges on *.* to 'root'@'%' identified by '123456'; mysql>flush privileges;--查看用戶信息
mysql> use mysql; mysql> select host,user from user;--這里就可以使用遠程連接測試了;
?
10. Mysql操作命令
--退出mysql命令窗口
#exit
--查看mysql狀態
#service mysql status
--停止mysql
#service mysql stop
--啟動mysql
#service mysql start
二、Mysql主從復制的搭建
環境準備:
首先把前面安裝好mysql的虛擬機克隆一個作為mysql的從節點,克隆方法參照我的文章:學習Mysql過程中拓展的其他技術棧:設置linux虛擬機的固定ip和克隆linux虛擬機
主庫所在服務器IP地址為192.168.168.130,從庫所在服務器IP地址為192.168.168.131
1.? MySql主從復制原理
mysql 主從復制原理:
1). master 將操作記錄到二進制日志(binary log)中;
2). slave IO 線程 將master的binary log events讀寫到它的中繼日志(relay log);
3). slave SQL線程讀取中繼日志,將重做記錄數據到數據庫中。
MySQL的主從同步是一個很成熟的架構,優點為:
1) 在從服務器可以執行查詢工作(即我們常說的讀功能),降低主服務器壓力;
2) 在從主服務器進行備份,避免備份期間影響主服務器服務;
3) 當主服務器出現問題時,可以切換到從服務器。
2. 主庫192.168.168.130設置
修改主庫my.cnf,主要是設置個不一樣的server-id和log-bin,紅色部分為新增部分。
vim /etc/my.cnf [mysqld] datadir=/data/mysql #socket=/var/lib/mysql/mysql.sock #user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 log-bin=mysql-bin #需要啟用二進制日志 server-id=1 # 用于標識不同的數據庫服務器 binlog-ignore-db=information_schema #忽略記錄二進制日志的數據庫 binlog-ignore-db=cluster #忽略記錄二進制日志的數據庫 binlog-ignore-db=mysql #忽略記錄二進制日志的數據庫重新啟動主庫生效:
service mysql restart登錄主庫:
mysql -hlocalhost -uroot -p?
賦予從庫權限帳號:
grant all privileges on *.* to '用戶名'@'%' identified by '密碼';本文建立的賬戶名稱為root,密碼為123456
?
查看是否創建用戶成功:
select user,host from mysql.user;?
顯示主庫信息,記錄File和Position,從庫設置將會用到:
show master status;?
3. 從庫192.168.168.131設置
修改從庫配置文件/etc/my.cnf
vim /etc/my.cnf [mysqld] datadir=/data/mysql #socket=/var/lib/mysql/mysql.sock #user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks #symbolic-links=0 log-bin=mysql-bin #需要啟用二進制日志 server-id=2 #用于標識不同的數據庫服務器 binlog-ignore-db=information_schema #忽略記錄二進制日志的數據庫 binlog-ignore-db=cluster #忽略記錄二進制日志的數據庫 binlog-ignore-db=mysql #忽略記錄二進制日志的數據庫 replicate-do-db=test #指定復制的數據庫 replicate-ignore-db=mysql #不復制的數據庫 #log-slave-updates #該從庫是否寫入二進制日志,如果需要成為多主則可啟用。只讀可以不需要 #slave-skip-errors=all slave-net-timeout=60重新啟動從庫生效:
service mysql restart登錄從庫:
mysql -u root -p?
停止從庫:?
stop slave;?
?連接MASTER ,MASTER_LOG_FILE為主庫的File,MASTER_LOG_POS為主庫的Position:
change master to master_host='192.168.152.130',master_user='root',master_password='123456',master_log_file='mysql-bin.000002', master_log_pos=434;?
說明:
上述第命令語句中的master_log_file='mysql-bin.000002', master_log_pos=434;對應為前面在主庫中執行的show master status;結果。
?啟動從庫服務:
start slave;?
4. 測試主從復制是否生效
在主庫服務器上新建一個數據庫test,然后在里面新建一張表
create database test; use test; CREATE TABLE `myTest` (`id` INT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT ,`username` VARCHAR( 20 ) NOT NULL ,`password` CHAR( 32 ) NOT NULL , `last_update` DATETIME NOT NULL , `number` FLOAT( 10 ) NOT NULL , `content` TEXT NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = MYISAM ;在從庫查看主庫新建的表是否存在:
?
可以看出從庫與主庫中信息一致,主從配置成功。為了更進一步驗證在從庫上輸入show slave status\G
?
Slave_IO_Running: Yes(網絡正常);
Slave_SQL_Running: Yes(表結構正常)
進一步驗證了以上過程的正確性。
?
參考文章:
1. centos6下安裝mysql:https://www.cnblogs.com/jr1260/p/6590232.html
2.?CentOS 6.5 下MySql主從、主主配置:https://www.cnblogs.com/whutxldwhj/p/5970540.html
?
轉載于:https://www.cnblogs.com/leeSmall/p/9440049.html
總結
以上是生活随笔為你收集整理的Mysql系列三:Centos6下安装Mysql和Mysql主从复制的搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: luogu1341 无序字母对
- 下一篇: 手眼标定(一)