首頁>技術>

囉嗦的話,不多說,我們直接開始部署,我相信有點linux基礎的人都能看得懂。

Mysql5.7.22主從部署,既然是主從那肯定是需要至少2臺伺服器了,2臺的安裝都是一樣的,請看下面!

1、 建立mysql使用者:useradd -m -d /home/mysql mysql

2、 上傳mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz安裝包到/app目錄下。

附官方下載連結:https://dev.mysql.com/downloads/file/?id=476936

3、 解壓安裝包到/app目錄下tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

4、 將解壓完的安裝包重新命名為:mysql5722

mv mysql-5.7.22-linux-glibc2.12-x86_64 mysql5722

5、 進入mysql5722目錄下建立data、logs目錄。

cd mysql5722/

mkdir data && mkdir logs

6、 進入剛剛建立的logs目錄下建立日誌檔案

cd logs touch error.log && touch general.log

授權/app/mysql5722目錄屬主屬組為mysql

chown -R mysql:mysql /app/mysql5722

7、 進入mysql的bin目錄下進行初始化設定:

cd ../bin/ ./mysqld --initialize --user=mysql --basedir=/app/mysql5722/ --datadir=/app/mysql5722/data

注意:初始化的時候會提示root使用者的預設密碼記得儲存,首次登陸需要。

8、 建立mysql配置檔案:

cd /etc/&& mv my.cnf my.cnf.bak

新建配置檔案:touch my.cnf,內容如下:

Master節點配置檔案內容:

[mysqld]server-id=1log_bin=master-binlog_bin_index=master-bin.indexbinlog_do_db=mysqlexpire_logs_days=7#skip-grant-tableslower_case_table_names=1explicit_defaults_for_timestampport = 3306datadir = /app/mysql5722/datasocket = /app/mysql5722/mysql.sockuser = mysqlsymbolic-links = 0basedir = /app/mysql5722big-tablescharacter-set-server = utf8#general-log-file = /app/mysql5722/logs/general.loglanguage = /app/mysql5722/sharelc-messages-dir = /app/mysql5722/sharegeneral-log = on#GENERAL_LOG=ONgeneral-log-file = /app/mysql5722/logs/mysqld.logslow-query-log = 1pid-file = /app/mysql5722/mysql.pidslow-query-log-file = /app/mysql5722/logs/mysqld_slow.logslave-load-tmpdir = /app/mysql5722/tmpplugin-dir = /app/mysql5722/lib/pluginmax_connections = 1000#innodb#innodb_log_file_size=512M#innodb_buffer_pool_size=2G[mysqld_safe]log-error=/app/mysql5722/logs/mysql_error.logpid-file=/app/mysql5722/mysql.pid[client]port = 3306socket=/app/mysql5722/mysql.sockuser=mysql

9、 配置啟動命令:

cd /app/mysql5722/support-files/

cp mysql.server /etc/init.d/mysqld

cd /etc/init.d/

修改mysqld配置檔案內容新增如下兩行資訊:

10、 配置開機啟動

chkconfig --add mysqldchkconfig mysqld onchown -R mysql:mysql mysql5722/

11、 啟動mysql資料庫

service mysqld start

12、 登入mysql

./mysql -uroot -p'LRabR;xaS9lh'修改root預設密碼,不然無法執行sql:alter user user() identified by "Abcd@123";修改root使用者密碼flush privileges;重新整理user mysql;create user 'master'@'%' identified by 'Abcd@123';grant replication slave on *.* to 'master'@'%';flush privilegesshow master status;

備slave節點配置檔案:

vim /etc/my.cnf

[mysqld]server-id=2relay_log=slave-relay-binrelay_log_index=slave-relay-bin.indexbasedir=/app/mysql5722datadir=/app/mysql5722/datasocket=/app/mysql5722/mysql.sockuser=mysqlcharacter-set-server=utf8lower_case_table_names=1explicit_defaults_for_timestampport=3306general-log=1general-log-file=/app/mysql5722/logs/general.logslow-query-log=1long_query_time=1slow_query_log_file=/app/mysql5722/slowquery.logpid-file=/app/mysql5722/mysql.pidslave-load-tmpdir=/app/mysql5722/slavetmpmax_connections=1000# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0#skip-grant-tables[mysqld_safe]log-error=/app/mysql5722/logs/error.logpid-file=/app/mysql5722/mysql.pid[client]port=3306socket=/app/mysql5722/mysql.sockuser=mysql

儲存後重啟從節點mysql。

備機:(slave)上配置:

登入mysql後執行:

user mysql;change master to master_host='10.1.60.71',master_user='master',master_password='abcd@123',master_log_file='master-bin.000001',master_log_pos=154;show slave status\G;

保證如下兩個值都為YES說明主從複製已經配置成功,需要注意的是兩臺伺服器的防火牆策略,網路必須是互通的。

Slave_IO_Running:YES

Slave_SQL_Running:YES

當然此架構如果對外提供服務不想使用伺服器的真實IP,你也可以安裝keepalived做VIP對外進行提供服務!

18
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 看完此文,別說你不懂IoC是什麼?