Mysql5.7.6安裝和主從配置手冊

 

Mysql5.7.6+ 安裝手冊

linux server版本
 
2. 檢查庫文件是否存在,若有刪除
    檢查:rpm -qa | grep mysql
    刪除: rpm -e mysql-libs-5.1.52.x86_64 --nodeps
3. 檢查mysql組和用戶是否存在,如無建立
   檢查: cat /etc/group | grep mysql
              cat /etc/passwd | grep mysql
   建立: groupadd mysql
               useradd -r -g mysql mysql  //useradd -r參數表示mysql用戶是系統用戶,不可用於登陸系統
4. 解壓包,更改所屬的組和用戶(安裝路徑:/usr/local/mysql)
    $ tar -xzvf mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz 
    $ mv mysql-5.7.12-linux-glibc2.5-x86_64 mysql 
    $ chown -R mysql:mysql mysql/
    $ cd  /usr/local/mysql/support-files/
    $  vim /etc/my.cnf
      ---------------------------------------my.cnf 模板---------------------------------------------
[client]
default-character-set=utf8mb4
port    = 3306
socket  = /usr/local/mysqld/mysqld.sock #用於本地鏈接的socket套接字
[mysql]
#這個配置段設置啓動MySQL服務的條件;在這種狀況下,no-auto-rehash確保這個服務啓動得比較快。
no-auto-rehash
[mysqld]
#user = mysql
port = 3306
basedir=/usr/local/mysql/      #使用該目錄做爲根目錄(安裝目錄)
datadir=/usr/local/mysql/data/ #數據文件存放的目錄
tmpdir = /usr/local/mysqld/tmp/ #MySQL存放臨時文件的目錄    
socket =/usr/local/mysqld/mysqld.sock     #爲MySQL客戶端程序和服務器之間的本地通信指定一個套接字文件
explicit_defaults_for_timestamp=true  #明確時間戳默認null方式
character_set_server=utf8mb4  #服務端默認編碼(數據庫級別)
collation_server =utf8mb4_bin #服務端默認的比對規則,排序規則
default-storage-engine = InnoDB #默認存儲引擎
#Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-warnings = 1 #將警告打印輸出到錯誤 log 文件
[mysqld_safe]
pid-file = /usr/local/mysqld/mysqld.pid
socket = /usr/local/mysqld/mysqld.sock
slow_query_log = 1 #開啓慢查詢
long-query-time = 10 #漫查詢閥值
log_long_format #在慢速日誌中記錄更多的信息
slow_query_log_file =  /usr/local/mysqld/log/slow_sql.log #慢查詢路徑
general_log = 0  #將全部到達MySQL Server的SQL語句記錄下來,默認關閉
general_log_file = /usr/local/mysqld/log/mysql_sql.log
log-error   = /usr/local/mysqld/log/mysqld.err #錯誤日誌路徑
 
4.建立my.cnf 配置的路徑文件或文件夾並受權
     $ mkdir 文件夾
     $ chown -R mysql:mysql  *
     $ chmod 755 *
5.將mysqld服務加入開機自啓動項
    $ cp mysql.server /etc/init.d/mysqld
    $ chmod +x /etc/init.d/mysqld
    $ chkconfig --add mysqld
    $ chkconfig --list mysqld
6.安裝和初始化數據庫記錄初始密碼
   $ bin/mysqld  --initialize   --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
7.數據庫啓動/中止/重啓
   $ service mysqld start
   $ service mysqld stop
   $ service mysqld restart
8.初始化密碼
  $ bin/mysql -u root -p 初始密碼
   mysql>set password=password("root");
   mysql> use mysql;
   mysql> update user set authentication_string=password('新密碼') where user='用戶';
9.修改密碼添加遠程訪問權限
   mysql> grant all privileges on *.* to'root' @'%' identified by 'root';
   mysql> flush privileges;
   mysql> quit;
9.關閉防火牆
  $ systemctl disable firewalld.service
 
window server 版本安裝
 
版本: mysql-5.7.22-winx64.zip 
解壓路徑:  D:\Program Files\mysql-5.7.22-winx64
配置環境變量
解壓路徑下新建my.ini 文件
[client]
default-character-set=utf8
[mysqld]
# 端口
port=3306
# 設置mysql的安裝目錄
basedir=D:\Program Files\mysql-5.7.22-winx64
# 設置mysql數據庫的數據的存放目錄
datadir=D:\Program Files\mysql-5.7.22-winx64\data
# 容許最大鏈接數  
max_connections=200
# 服務端使用的字符集默認爲8比特編碼的latin1字符集  
character-set-server=utf8
# 建立新表時將使用的默認存儲引擎  
default-storage-engine=INNODB
系統管理員啓動cmd
mysqld --initialize
mysqld -install
net start mysql
第一次登陸
net stop mysql
mysqld --defaults-file="D:\Program Files\mysql-5.7.22-winx64\my.ini" --console --skip-grant-tables
設置密碼
mysql> use mysql;
mysql> update user set authentication_string=password(「root「) where user=」root」;
mysql> flush privileges;
客服端鏈接從新登錄
mysql> set password=password('root');

設置用戶
#查看用戶權限
mysql> select user,host from mysql.user;
mysql> show grants for 'username'@'host' ;
#建立用戶
mysql> create user 'username'@'host' identified by 'password';
#授予用戶權限
mysql> grant privileges on databasename.tablename to 'username'@'host';
mysql> grant privileges on databasename.tablename to 'username'@'host' with grant option;
privileges:用戶的操做權限,如select,insert,update等,若是要授予所的權限則使用all。
databasename:數據庫名
tablename:表名,若是要授予該用戶對全部數據庫和表的相應操做權限則可用*表示,如*.*
with grant option 用戶有受權權限。
#設置修改密碼
mysql> set password for 'username'@'host' = password('newpassword');
mysql> set password = password("newpassword");
#撤銷用戶權限
mysql> revoke privilege on databasename.tablename from 'username'@'host';
mysql> update mysql.user set host='192.168.16.%' where user=' username ' and host='host';
#刪除用戶
mysql> drop user 'username'@'host';
#生效用戶權限
mysql> flush privileges;

 

Mysql5.7.6+ 主從配置手冊


 

master 數據庫 /etc/my.cnf 配置
[client]
default-character-set=utf8mb4
port    = 3306
socket  = /usr/local/mysqld/mysqld.sock #用於本地鏈接的socket套接字
[mysql]
#這個配置段設置啓動MySQL服務的條件;在這種狀況下,no-auto-rehash確保這個服務啓動得比較快。
no-auto-rehash
[mysqld]
#user = mysql
port = 3306
basedir=/usr/local/mysql/      #使用該目錄做爲根目錄(安裝目錄)
datadir=/usr/local/mysql/data/ #數據文件存放的目錄
tmpdir = /usr/local/mysqld/tmp/ #MySQL存放臨時文件的目錄    
socket =/usr/local/mysqld/mysqld.sock     #爲MySQL客戶端程序和服務器之間的本地通信指定一個套接字文件
explicit_defaults_for_timestamp=true  #明確時間戳默認null方式
character_set_server=utf8mb4  #服務端默認編碼(數據庫級別)
collation_server =utf8mb4_bin #服務端默認的比對規則,排序規則
default-storage-engine = InnoDB #默認存儲引擎
server-id=1 #設置server-id
log-bin=mysql-bin #開啓二進制日誌
binlog_format=mixed #複製模式
# 不一樣步哪些數據庫  
binlog-ignore-db = mysql  
binlog-ignore-db = test  
binlog-ignore-db = information_schema  
# 只同步哪些數據庫,除此以外,其餘不一樣步  
binlog-do-db = game
#Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-warnings = 1 #將警告打印輸出到錯誤 log 文件
[mysqld_safe]
pid-file = /usr/local/mysqld/mysqld.pid
socket = /usr/local/mysqld/mysqld.sock
slow_query_log = 1 #開啓慢查詢
long-query-time = 10 #漫查詢閥值
log_long_format #在慢速日誌中記錄更多的信息
slow_query_log_file =  /usr/local/mysqld/log/slow_sql.log #慢查詢路徑
general_log = 0  #將全部到達MySQL Server的SQL語句記錄下來,默認關閉
general_log_file = /usr/local/mysqld/log/mysql_sql.log
log-error   = /usr/local/mysqld/log/mysqld.err #錯誤日誌路徑
 
slave  數據庫 /etc/my.cnf  配置
[client]
default-character-set=utf8mb4
port    = 3306
socket  = /usr/local/mysqld/mysqld.sock #用於本地鏈接的socket套接字
[mysql]
#這個配置段設置啓動MySQL服務的條件;在這種狀況下,no-auto-rehash確保這個服務啓動得比較快。
no-auto-rehash
[mysqld]
#user = mysql
port = 3306
basedir=/usr/local/mysql/      #使用該目錄做爲根目錄(安裝目錄)
datadir=/usr/local/mysql/data/ #數據文件存放的目錄
tmpdir = /usr/local/mysqld/tmp/ #MySQL存放臨時文件的目錄    
socket =/usr/local/mysqld/mysqld.sock     #爲MySQL客戶端程序和服務器之間的本地通信指定一個套接字文件
explicit_defaults_for_timestamp=true  #明確時間戳默認null方式
character_set_server=utf8mb4  #服務端默認編碼(數據庫級別)
collation_server =utf8mb4_bin #服務端默認的比對規則,排序規則
default-storage-engine = InnoDB #默認存儲引擎
server-id=2 #設置server-id
#Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-warnings = 1 #將警告打印輸出到錯誤 log 文件
[mysqld_safe]
pid-file = /usr/local/mysqld/mysqld.pid
socket = /usr/local/mysqld/mysqld.sock
slow_query_log = 1 #開啓慢查詢
long-query-time = 10 #漫查詢閥值
log_long_format #在慢速日誌中記錄更多的信息
slow_query_log_file =  /usr/local/mysqld/log/slow_sql.log #慢查詢路徑
general_log = 0  #將全部到達MySQL Server的SQL語句記錄下來,默認關閉
general_log_file = /usr/local/mysqld/log/mysql_sql.log
log-error   = /usr/local/mysqld/log/mysqld.err #錯誤日誌路徑

master  建立受權用戶
 mysql>CREATE USER 'prdrepl'@'192.168.16.%' IDENTIFIED BY 'root';
 mysql> use mysql;
 mysql> update user set authentication_string=password('reduser') where user='reduser';
用戶賦予 REPLICATION SLAVE 權限
 mysql>GRANT REPLICATION SLAVE ON *.* TO 'prdrepl'@'192.168.16.%';
 mysql> flush privileges;
查看用戶
mysql>select user,host from mysql.user;
查看 master 狀態
mysql>show master status;
//這裏的 mysql-bin.000001和 Position 值 slave 配置時須要用到。

手動同步master數據
  •  master 中現有的數據信息導出
mysqldump -u root -p --all-databases --master-data > all.sql
//命令失敗 設置軟鏈接
find / -name mysql -print
ln -fs /usr/local/mysql/bin/mysqldump /usr/bin
ln -fs /usr/local/mysql/bin/mysql /usr/bin
  • 將 all.sql 發送到 slave 服務器 tmp 目 錄下
scp all.sql root@192.168.16.14:/tmp
  • slave 導入 master 數據
mysql>stop slave
mysql -uroot -p < all.sql

使 slave 與 master 創建鏈接
mysql> change master to
        -> master_host='192.168.16.16',
        -> master_user='prdrepl',
        -> master_password='prdrepl',
       -> master_port=3306,
        -> master_log_file='mysql-bin.000001',
       -> master_log_pos=623;
啓動備份
mysql>start slave;
查看備份是否啓動成功
mysql>show slave status \G
 Slave_IO_Running: Yes
 Slave_SQL_Running: Yes

設置只讀屬性
mysql>set global read_only=1  //1只讀,0讀寫
mysql>show global variables like "%read_only%";
mysql>flush tables with read lock;// 設定全局鎖 備份失效
mysql>unlock tables; //解鎖 全局鎖 
相關文章
相關標籤/搜索