[root@bogon soft]# mkdir /usr/local/soft/mysql
[root@bogon soft]# cd /usr/local/soft/mysql
[root@bogon mysql]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
上邊下載了yum Repository,接下來便可安裝yum Repository:mysql
[root@bogon mysql]# yum -y install mysql57-community-release-el7-10.noarch.rpm
[root@bogon mysql]# yum -y install mysql-community-server
說明mysql已安裝完成了。sql
[root@bogon ~]# systemctl start mysqld.service
設置開機啓動:數據庫
[root@bogon ~]# systemctl enable mysqld.service
[root@bogon ~]# systemctl status mysqld.service
[root@bogon ~]# grep "password" /var/log/mysqld.log
根據上邊的提示,root的密碼爲:/c8dHFj8GLozvim
[root@bogon ~]# mysql -uroot -p
輸入上邊的密碼進入。centos
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOU/password@121';
YOU/password@121替換爲本身定義的密碼,注意須要小寫和大寫以及符號組成,否則會修改失敗。
語法命令:服務器
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
username:更換爲你的用戶名。
host:受權的地址,若是是本地可以使用localhost,也可直接指定ip,所有受權使用 %。
password:更換爲你的密碼
例如:
mysql> CREATE USER 'youname'@'%' IDENTIFIED BY 'YOU/password@121';
語法命令:tcp
GRANT privileges ON databasename.tablename TO 'username'@'host'
privileges:用戶的操做權限,若是授予全部權限則使用all.ide
databasename:數據庫名稱。tablename:表名。若是要給該用戶授予對全部操做權限則可用*表示,例如*.*編碼
例如:centos7
test_admin2用戶設置test_db的只讀(select)權限
mysql> GRANT SELECT ON test_db.* TO 'test_admin2'@'%';
設置youname用戶的全部權限,而且開啓遠程訪問:
mysql> grant all privileges on *.* to 'youname'@'%' identified by 'YOU/password@121' with grant option;
其中的 % 表示 開啓全部的權限,若是隻開啓某一個ip,那麼把%替換爲ip地址就可。
刷新權限(設置完成後,必須進行設置):
mysql> flush privileges;
查看用戶受權信息:
mysql> SHOW GRANTS FOR 'youname'@'%';
查看,mysql狀態:
mysql> status
根據上圖看出Server 和Db的編碼不是utf-8。
先退出當前mysql
mysql> exit
編輯my.cnf:
[root@bogon ~]# vim /etc/my.cnf
鍵盤輸入 「i」 進入編輯狀態,插入如下內容:
[client] # 默認編碼爲utf8 default-character-set=utf8 ...... # 設置服務編碼 character-set-server=utf8 # 設置校對規則 collation-server=utf8_general_ci
圖下圖:
鍵盤按下ESC退出編輯模式,鍵盤輸入「:wq」保存並退出,重啓mysql:
[root@bogon ~]# service mysqld restart
再次查看,mysql狀態:
[root@bogon ~]# mysql -uroot -p
輸入密碼後查詢狀態:
mysql> status
輸出如圖所示:
說明修改過來了。
退出mysql:
mysql> exit
[root@bogon ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
防火牆重起:
[root@bogon ~]# firewall-cmd --reload
查看MySQL運行狀態
systemctl status mysqld.service
關閉MySQL服務
systemctl stop mysqld.service
啓動MySQL命令:
systemctl start mysqld.service
重啓MySQL命令:
systemctl restart mysqld.service
MySQL 主從也被稱爲 複製、 AB 複製,簡單來講, 就是 A和B兩臺服務器,在A 服務器上 寫入數據, 服務器B上也會跟 着寫入數據 二者之間的數據是同步的。
MySQL 主從是基於 binlog的,主必須開啓 binlog 才能進行主從。
如今準備兩臺服務器,上邊都安裝了mysql。
主:192.168.30.110
從:192.168.30.111
編輯my.cnf:
[root@bogon ~]# vim /etc/my.cnf
鍵盤輸入 「i」 進入編輯狀態,插入如下內容:
server-id=110 log_bin=centos7
以下圖所示:
鍵盤按下ESC退出編輯模式,鍵盤輸入「:wq」保存並退出,重啓mysql:
[root@bogon ~]# service mysqld restart
重啓之後,mysql的數據目錄下(編輯my.conf時上圖中的datadir的目錄)會生成兩個文件:centos7.index索引文件、centos7.000001日誌文件。
建立用戶,主從同步使用:
[root@bogon bin]# mysql -uroot -p
mysql> CREATE USER 'masterSlaveUser'@'129.168.30.%' IDENTIFIED BY 'weiLAI@119';
mysql> grant all privileges on *.* to 'masterSlaveUser'@'129.168.30.%' identified by 'weiLAI@119';
第一句:建立用戶名爲:masterSlaveUser,受權的地址:129.168.30.% %表示全部,密碼:weiLAI@119
第二句:受權該帳號在地址129.168.30.%下的全部權限。
刷新權限(設置完成後,必須進行設置):
mysql> flush privileges;
mysql> SHOW MASTER STATUS;
如圖所示:
編輯my.cnf:
[root@bogon ~]# vim /etc/my.cnf
鍵盤輸入 「i」 進入編輯狀態,插入如下內容:
server-id=111
備註:
此處的server-id=111是從的地址,和主不一樣。
此處不須要配置log_bin,從不須要二進制日誌文件。
鍵盤按下ESC退出編輯模式,鍵盤輸入「:wq」保存並退出,重啓mysql:
[root@bogon ~]# service mysqld restart
重點來了:
鏈接主數據庫:
[root@bogon bin]# mysql -uroot -p
change master to master_host='192.168.30.110',
master_port=3306,
master_user='masterSlaveUser',
master_password='weiLAI@119',
master_log_file='centos7.000001',
master_log_pos=875;
備註:
(1)第一句:鏈接主mysql,地址爲:192.168.30.110
(2)鏈接的端口、使用的帳號、密碼
(3)後邊兩個是日誌文件和端口,此處的875就是主查看日誌的端口
如圖所示:
而後輸入一下命令,啓動從:
mysql> start slave;
查看是否成功:
mysql> show slave status\G
Slave_IO_ Running和Slave_SQL _Running 都爲yes,即爲成功。
主從同步必須關閉防火牆,不然不會顯示 Yes
至此mysql安裝和配置完成。