一、linux上安裝mysql(命令中空格格式可能不正確,需要在linux上重新刪除輸入空格)
1.下載mysql安裝包(也可以去官方網站下載解壓)
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
2.解壓安裝包
tar -zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
3.移動
解壓後的mysql目錄,將當前目錄下的解壓包移動到/usr/local/目錄下,並改名爲mysql
mv mysql-5.6.33-linux-glibc2.5-x86_64 /usr/local/mysql
4.添加用戶組和用戶
#添加用戶組
groupadd mysql
#添加用戶mysql 到用戶組mysql
useradd -g mysql mysql
#查看系統用戶是否存在mysql
cat /etc/passwd
5.切換到/usr/local/mysql目錄,安裝
#切換目錄
cd /usr/local/mysql/
#安裝
scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
6.複製mysql服務到啓動目錄下,並授權
#複製
cp support-files/mysql.server /etc/init.d/mysqld
#授權
chmod 755 /etc/init.d/mysqld
7.複製mysql配置文件到配置文件最優先讀取位置
#查看mysql配置文件讀取優先級順序,最前面的路徑最優先讀取,找不到則往後讀
/usr/local/mysql/bin/mysql --verbose --help|grep -A 1 'Default options'
#複製
cp support-files/my-default.cnf /etc/my.cnf
8.修改啓動腳本
vi /etc/init.d/mysqld
#修改項:
basedir=
/usr/local/mysql/
datadir=
/usr/local/mysql/data
9.啓動mysql服務
service mysqld start
10.測試連接
bin/mysql -uroot
能進入數據庫說明連接成功,數據庫已經安裝完成!退出mysql(exit;)下面進行一些配置
11.修改環境變量,添加mysql環境變量
export PATH=$PATH:/usr/local/mysql/bin
設置變量的三種方法
1. 在/etc/profile文件中添加變量【對所有用戶生效(永久的)】
用vi在文件/etc/profile文件中增加變量,該變量將會對Linux下所有用戶有效,並且是“永久的”。
例如:編輯/etc/profile文件,添加CLASSPATH變量
# vi /etc/profile
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar;$JAVA_HOME/lib/dt.jar
注:修改文件後要想馬上生效還要運行# source /etc/profile不然只能在下次重進此用戶時生效。
2. 在用戶目錄下的.bash_profile文件中增加變量【對單一用戶生效(永久的)】
用VI在用戶目錄下的.bash_profile文件中增加變量,改變量僅會對當前用戶有效,並且是“永久的”。
例如:編輯li用戶目錄(/home/li)下的.bashrc
$ vi /home/li/.bashrc
添加如下內容:
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar;$JAVA_HOME/lib/dt.jar
注:修改文件後要想馬上生效還要運行$ source /home/li/.bashrc不然只能在下次重進此用戶時生效。
3. 直接運行export命令定義變量【只對當前shell(BASH)有效(臨時的)】
如:export PATH=$PATH:/usr/local/mysql/bin
12.設置mysql的遠程訪問
(1)打開端口3306的防火牆
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/etc/rc.d/init.d/iptables save ---將修改永久保存到防火牆中
(2)設置數據庫遠程訪問權限,先登錄mysql數據庫
#授權並創建用戶
grant all privileges on *.* to 'myuser' @'%' identified by '123456';
#刷新權限
flush privileges;
#查詢用戶是否存,是否授權,\G爲換行顯示命令
select * from mysql.user\G;
'all privileges ':所有權限 也可以寫成 select ,update等。
'myuser' 用戶,如果沒有則自動創建
*.* 所有庫的所有表 如 databasename.*。
% 數據庫所在的IP,%標識所有IP。
identified by ‘密碼’ 表示通過密碼連接
二、mysql主從複製配置
複製原理:
Mysql中有一種日誌叫做bin日誌(二進制日誌)。這個日誌會記錄下所有修改了數據庫的SQL語句(insert,update,delete,ALTER TABLE,grant等等)。
主從複製的原理其實就是把主服務器上的BIN日誌複製到從服務器上執行一遍,這樣從服務器上的數據就和主服務器上的數據相同了。
主從複製配置過程:
主節點:
啓用二進制日誌。
爲當前節點設置一個全局唯一的server_id。
創建有複製權限的用戶賬號 REPLIACTION SLAVE ,REPLIATION CLIENT。
從節點:
啓動中繼日誌。
爲當前節點設置一個全局唯一的server_id。
使用有複製權限的用戶賬號連接至主節點,並啓動複製線程。
1.如上操作在兩個服務器安裝mysql,其中主服務器必須設置遠程訪問權限
2.配置主節點
進入主節點服務器然後打開my.cnf配置文件
vi /etc/my.cnf
添加:log-bin = mysql-bin
添加:binlog_format=mixed
添加 :server-id =1
添加:innodb-file-per-table =ON
添加:skip_name_resolve=ON
保存後重啓mysql服務,重連mysql
service mysqld restart
3.在主節點創建從節點訪問主節點權限的用戶
grant all privileges on *.* to slave@'從節點IP' identified by '123456';
至此,主節點配置完成!
查看二進制日誌log_bin是否開啓:show global variables like '%log%';
查看主節點server_id:show global variables like '%server%';
查看主節點二進制日誌列表:show master logs;
4.從節點配置
vi /etc/my.cnf
- 添加:relay-log=relay-log
- 添加:relay-log-index=relay-log.index
- 添加:server-id=2
- 添加:innodb_file_per_table=ON
- 添加:skip_name_resolve=ON
重啓從節點數據庫
service mysqld restart
5.從節點登陸mysql
查看二進制日誌log_bin是否開啓:show global variables like '%log%';
查看主節點server_id:show global variables like '%server%';
6.在從節點配置訪問主節點的參數信息
注意:主節點的二進制文件一定要是二進制列表中的最後一個二進制文件。
CHANGE MASTER TO MASTER_HOST='主節點IP',MASTER_USER='slave',MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=407;
注意:slave爲剛纔在主節點創建的用戶
至此,從節點配置完成!
查看從節點狀態:show slave status\G;
此時未啓動從節點複製線程,因此兩個線程都未啓動,啓動複製線程:start slave;
在查看從節點狀態,都是yes
7.測試
在主節點任意增刪改操作,從節點都同步複製!