MySQL-5.7.14從零開始-安裝
首先我們要選擇下載MySQL的版本:
登錄官方網站下載:
https://dev.mysql.com/downloads/mysql/
下面我們選擇5.7.14的版本的社區版MySQL,我們都知道,這個版本免費的,現在大部分人也都是使用的這個社區版。

貼個5.7.18的圖頂替一下吧,因為我當時下載時候是5.7.14,懶得下載最新版本了。但是下載選擇方法是一樣的。不在贅述了,下載完版本以后再進行安裝。
安裝前要安裝依賴包:
yum -y install perl-Module-Install.noarch yum -y install libaio libaio-devel yum -y install gcc gcc-c++ make cmake automake autoconf libxml2 libxml2-devel zlib zlib-devel ncurses ncurses-devel
將我們下載的文件拷貝到我的目錄下:
[root@mxqmongodb2 sa]# ls autokey maxiangqian.txt mxq.txt mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz redis-3.2.8.tar.gz redis-3.2.8.tar.gz.1 [root@mxqmongodb2 sa]# cd /home/maxiangqian/ [root@mxqmongodb2 maxiangqian]# cp /home/sa/mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz /home/maxiangqian/ [root@mxqmongodb2 maxiangqian]# ls mongodb-linux-x86_64-rhel62-3.4.2 mongodb-linux-x86_64-rhel62-3.4.2.tgz mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz redis-3.2.8 redis-3.2.8.tar.gz
創建用戶和必要文件夾:
[root@mxqmongodb2 maxiangqian]# mkdir -p /home/mysql/db3306/{data,log,tmp} [root@mxqmongodb2 maxiangqian]# groupadd mysql [root@mxqmongodb2 maxiangqian]# useradd -r -g mysql -s /bin/false mysql
現在我們已經創建好了數據庫的基本的需求,下面解壓:
[root@mxqmongodb2 mysql]# cd /home/mysql/ [root@mxqmongodb2 mysql]# ls db3306 [root@mxqmongodb2 mysql]# tar zxvf /home/maxiangqian/mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz [root@mxqmongodb2 mysql]# ls db3306 mysql-5.7.14-linux-glibc2.5-x86_64
授權以及創建軟連接:
[root@mxqmongodb2 mysql]# ln -s /home/mysql/mysql-5.7.14-linux-glibc2.5-x86_64/ /usr/local/mysql [root@mxqmongodb2 mysql]# chown -R mysql:mysql /usr/local/mysql/ [root@mxqmongodb2 mysql]# chown -R mysql:mysql /home/mysql/
創建配置文件:
[root@mxqmongodb2 mysql]# vi /home/mysql/db3306/my3306.cnf
配置文件的內容貼在最后。
初始化MySQL:
[root@mxqmongodb2 mysql]# /usr/local/mysql/bin/mysqld --defaults-file=/home/mysql/db3306/my3306.cnf --initialize --user='mysql' --log_error_verbosity --explicit_defaults_for_timestamp [root@mxqmongodb2 mysql]# mysqld_safe --defaults-file=/home/mysql/db3306/my3306.cnf & [1] 4932 [root@mxqmongodb2 mysql]# echo "export PATH=$PATH:/usr/local/mysql/bin">>/etc/profile [root@mxqmongodb2 mysql]# source /etc/profile
然后我們去看一下進程,並且登錄到MySQL:
[root@mxqmongodb2 mysql]# ps -ef|grep mysql root 4932 4852 0 10:41 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/home/mysql/db3306/my3306.cnf mysql 5502 4932 0 10:41 pts/0 00:00:00 /usr/local/mysql/bin/mysqld --defaults-file=/home/mysql/db3306/my3306.cnf --basedir=/usr/local/mysql --datadir=/home/mysql/db3306/data/ --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/home/mysql/db3306/log/mysql-error.log --pid-file=/home/mysql/db3306/tmp/mysqld.pid --socket=/home/mysql/db3306/tmp/mysql.sock --port=3306 root 5533 4852 0 10:42 pts/0 00:00:00 grep mysql [root@mxqmongodb2 mysql]# cat /home/mysql/db3306/log/mysql-error.log |grep passw 2017-05-10T02:40:52.028140Z 1 [Note] A temporary password is generated for root@localhost: Y,?szysAN2tV [root@mxqmongodb2 mysql]# cd /home/mysql/db3306/tmp/ [root@mxqmongodb2 tmp]# ls mysqld.pid mysql.sock mysql.sock.lock [root@mxqmongodb2 tmp]# mysql -S /home/mysql/db3306/tmp/mysql.sock -p
登錄成功修改密碼:
mysql> set password=password('maxiangqianmysql'); Query OK, 0 rows affected, 1 warning (0.04 sec)
安裝完畢
下面我們配置一下雙主結構吧,隨便附加點東西,基於我們兩台服務器已經安裝好了MySQL5.7.14
兩邊建立復制賬號:
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* to 'repl'@'172.16.16.%' identified by 'replication'; flush privileges;
打開復制:
SERVER2: CHANGE MASTER TO MASTER_HOST='172.16.16.34', MASTER_USER='repl', MASTER_PASSWORD='replication', MASTER_PORT=3306, master_auto_position=1; SERVER1: CHANGE MASTER TO MASTER_HOST='172.16.16.35', MASTER_USER='repl', MASTER_PASSWORD='replication', MASTER_PORT=3306, master_auto_position=1; 兩台主機: START SLAVE; SHOW SLAVE STATUS\G
發現沒有問題,接下來驗證雙主復制:
server1: root@mysql03:52:00>create database maxiangqian; Query OK, 1 row affected (0.08 sec) server2: mysql> use maxiangqian Database changed mysql> create table maxiangqian(id int ); Query OK, 0 rows affected (0.26 sec) server1: root@mysql03:54:37>select * from maxiangqian .maxiangqian; +------+ | id | +------+ | 111 | +------+ 1 row in set (0.00 sec)
也可以SHOW SLAVE STATUS\G來看一下復制狀態
可見雙主復制是成功的。
再附件一個MySQL的常識-MySQL連接方式:
MySQL的連接方式分為TCP/IP和socket的方式鏈接
本機登錄MySQL在不指定-h的前提下是默認socket鏈接,比如:
msyql -uroot -p
或者我們可以顯示指定socket鏈接:mysql -uroot -S /home/mysql/tmp/mysql,scok -p
默認情況下會先找/tmp/mysql.scok,如果我們的my.cnf李client指定了socket文件的位置的話。客戶端默認先去找配置的位置。而且mysql client只會通過/etc/my.cnf讀取client的基本配置。
client讀取配置文件的順序是:
/etc/my.cnf -----/etc/mysql/my.cnf------/usr/local/mysql/etc/my.cnf ----~/my.cnf
指定-h以后就默認為TCP/IP鏈接。