虛擬機CENTOS7下 安裝8.0版本MySQL MySQL主從配置詳細~

全部代碼,寫在後面吧!

全部的代碼在後面。

1、安裝mysql

先rz命令上傳一下!出現未響應是很正常的情況!等會就好啦。
在這裏插入圖片描述在這裏插入圖片描述

ls查看一下,已經出現啦~

xz -d mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz

這個解壓不顯示過程。
成功! 變成這個名字啦:mysql-8.0.13-linux-glibc2.12-x86_64.tar
在這裏插入圖片描述

  tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar

在這裏插入圖片描述

將解壓後的文件夾拷貝到/usr/local/並重命名爲mysql

 mv -f mysql-5.7.10-linux-glibc2.5-x86_64  /usr/local/mysql

在這裏插入圖片描述

2、查看系統是否有libaio包,如果沒有無法運行mysql數據庫

   rpm -qa | grep libaio

libaio-0.3.107-10.el6.x86_64 //表示已經安裝
在這裏插入圖片描述
已經存在啦!

3、建立mysql用戶和用戶組

 useradd -s /sbin/nologin -M mysql

在這裏插入圖片描述

4、修改mysql文件夾的屬主和屬組爲mysql

進入有mysql的文件夾,修改.
在這裏插入圖片描述

   chown -R mysql:mysql mysql

5、初始化數據庫,啓動mysql/bin目錄下的mysqld

8.0版本:
進入bin目錄,有啓動項的那個!

   ./mysqld --initialize --user=mysql

注意保存初始化mysql數據庫密碼:

運行完成後注意最後一句,這是mysql數據庫自動生成的root密碼,一定要記錄下來
在這裏插入圖片描述

6、配置數據庫

   cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

或者直接進入/etc/my.cnf進行配置即可!
在實驗環境下,按下面的內容配置mysql即可:

vim /etc/my.cnf

要用英文輸入法來複制纔可以!

   # For advice on how to change settings please see
   # http://dev.mysql.com/doc/refman/5.7/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 # and set to the amount of RAM for the most important data
   # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
   # innodb_buffer_pool_size = 128M

   # Remove leading # to turn on a very important data integrity option: logging
   # changes to the binary log between backups.
   # log_bin

   # These are commonly set, remove the # and set as required.
    basedir = /usr/local/mysql    
   #mysql數據庫文件夾所在位置
    datadir = /var/lib/mysql
   #mysql數據庫的數據文件所在位置
   # port = .....
   # server_id = .....
    socket = /var/lib/mysql/mysql.sock
   #mysql sock位置

   # 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 
    character-set-server=utf8
   #修改mysql服務器默認的字符集

   #此句不是必須
   sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

   [client]

   socket = /var/lib/mysql/mysql.sock
   default-character-set=utf8
#符號開頭的沒必要複製上去!

在這裏插入圖片描述
7、啓動數據庫

所有版本通用:

 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
 service mysqld start

數據啓動完畢
在這裏插入圖片描述

8、連接測試數據庫

   cd /usr/local/mysql/bin
   ./mysql -u root -p

現在忘記密碼豈不是尷尬啦~還好有備份!
在這裏插入圖片描述

輸入密碼,成功進入數據庫!
修改密碼:

   ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

在這裏插入圖片描述
分號不要忘記!

9、修改環境變量和ld.so.conf

將含有mysql命令的目錄添加到環境變量

 # vim  /etc/profile
   PATH=/usr/local/mysql/bin:$PATH

另外一個:

 #export PATH

在文本最後添加一下環境變量
在這裏插入圖片描述在這裏插入圖片描述

將mysql目錄下的lib目錄添加到ld.so.conf文件

   #vim /etc/ld.so.conf
   include /usr/local/mysql/lib/

添加,不是覆蓋刪除!
在這裏插入圖片描述
保存退出後輸入

   ldconfig

在這裏插入圖片描述
ldconfig 命令的用途,主要是在默認搜尋目錄(/lib和/usr/lib)以及動態庫配置文件/etc/ld.so.conf內所列的目錄下,搜索出可共享的動態 鏈接庫(格式如前介紹,lib.so),進而創建出動態裝入程序(ld.so)所需的連接和緩存文件.緩存文件默認爲 /etc/ld.so.cache,此文件保存已排好序的動態鏈接庫名字列表**

從服務器也要安裝MySQL,但是主從配置就有區別啦!


主從配置:

mysql主服務器配置:

1、修改my.cnf,添加

   [mysqld]
   log-bin=mysql-bin
   server-id=1

在這裏插入圖片描述

2、重啓mysql服務

   service mysqld restart
   systemctl restart mysqld.service

重啓的時候出問題啦,需要安裝一個東西!
我寫的:https://blog.csdn.net/weixin_42859280/article/details/84574205
在這裏插入圖片描述

3、在mysql數據庫中,建立用戶同步數據庫的賬號:

1、mysql主服務器建立用戶並賦予權限
要先登錄MySQL纔可以進行這個操作!

cd /usr/local/mysql/bin
./mysql -u root -p

   create user 'repl' identified by '123456';
   ALTER USER 'repl'@'%' IDENTIFIED BY '123456';
   flush privileges;
   GRANT replication slave ON *.* TO 'repl'@'%';
   GRANT ALL privileges ON *.* TO 'repl'@'%';

在這裏插入圖片描述
示例:

在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

查看用戶和遠程主機連接設置

   select host,user from user;

在這裏插入圖片描述

查看mysql主服務器日誌:

   show master status

在這裏插入圖片描述

   show master status\G

在這裏插入圖片描述

試試同步數據!
關掉防火牆!
在這裏插入圖片描述
mysql從服務器配置:

所有版本通用

1、修改my.cnf,添加

   [mysqld]
   log-bin=mysql-bin
   server-id=2

在這裏插入圖片描述
2、重啓mysql.server服務

   service mysqld restart

在這裏插入圖片描述

   systemctl restart mysqld.service

在這裏插入圖片描述
重啓的時候出問題啦,需要安裝一個東西!
我寫的:https://blog.csdn.net/weixin_42859280/article/details/84574205
3、在從服務器設置主服務器,實現主從配置
登錄:

cd /usr/local/mysql/bin
./mysql -u root -p

查看一下主MySQL的日誌:
在這裏插入圖片描述

 CHANGE MASTER TO MASTER_HOST='192.168.159.136',MASTER_USER='repl',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=960;

4、開啓主從

   start slave;

在這裏插入圖片描述
5、檢查從服務器狀態,注意是否有報錯

   show slave status\G;

在這裏插入圖片描述
已經是連接狀態;

試試同步數據!
關掉防火牆!
在這裏插入圖片描述

同步測試之前。
主數據庫:
在這裏插入圖片描述
從數據庫:
在這裏插入圖片描述

主:
創建數據庫:
在這裏插入圖片描述從MySQL的同步:
在這裏插入圖片描述

全部代碼:

xz -d mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar
mv -f mysql-8.0.13-linux-glibc2.12-x86_64 /usr/local/mysql
rpm -qa | grep libaio
useradd -s /sbin/nologin -M mysql
cd /usr/local
ls -al
chown -R mysql:mysql mysql
ls -al
cd mysql/bin/
./mysqld --initialize --user=mysql
(記得記下密碼!)
直接配置 /etc/my.cnf文件。
vim /etc/my.cnf
複製以下內容:

   [mysqld]


    basedir = /usr/local/mysql

    datadir = /var/lib/mysql

    socket = /var/lib/mysql/mysql.sock



    character-set-server=utf8



   sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

   [client]

   socket = /var/lib/mysql/mysql.sock
   default-character-set=utf8

啓動數據庫:

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

service mysqld start

登錄數據庫:
cd /usr/local/mysql/bin
./mysql -u root -p

root@localhost: O=y#lQf1kAYJ  比如這個密碼,要緊貼着O的左邊進行復制。這樣纔可以!

修改密碼:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

#vim  /etc/profile
   PATH=/usr/local/mysql/bin:$PATH
#export PATH

#vim /etc/ld.so.conf
   include /usr/local/mysql/lib/
#ldconfig

接下來就是主從配置啦!

主:
關掉防火牆!
修改my.cnf,添加
   [mysqld]
   log-bin=mysql-bin
   server-id=1
service mysqld restart
systemctl restart mysqld.service
重啓的時候出問題啦,需要安裝一個東西!
我寫的:https://blog.csdn.net/weixin_42859280/article/details/84574205
登錄:
cd /usr/local/mysql/bin
./mysql -u root -p
五條語句:
create user 'repl' identified by '123456';
   ALTER USER 'repl'@'%' IDENTIFIED BY '123456';
   flush privileges;
   GRANT replication slave ON *.* TO 'repl'@'%';
   GRANT ALL privileges ON *.* TO 'repl'@'%';

show databases;
use mysql;
show tables;
select host,user from user;
show master status\G;

從:
關掉防火牆!
修改my.cnf,添加
   [mysqld]
   log-bin=mysql-bin
   server-id=2
service mysqld restart
systemctl restart mysqld.service
重啓的時候出問題啦,需要安裝一個東西!
我寫的:
https://blog.csdn.net/weixin_42859280/article/details/84574205

登錄:
cd /usr/local/mysql/bin
./mysql -u root -p

CHANGE MASTER TO MASTER_HOST='192.168.159.136',MASTER_USER='repl',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=1373;

開啓主從
   start slave;
show slave status\G;



測試同步:
主:

創建數據庫:
create database www;
use www;
create table info(num int);
show tables;
insert into info values(666);
select * from info;

從:
use www;
show tables;
select * from info;

另外,如果
在這裏插入圖片描述
不是兩個yes的話。
就檢查一下:

  • 防火牆關閉了嗎?
  • repl這個用戶可以登錄主MySQL嗎?
  • server-id=1 server-id=2 這個添加了嗎?
  • 看看slave的status信息是否跟主MySQL的master status一樣!
    如果都不行的話,就重新做一遍吧!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章