mariadb實際上是跟mysql是同樣的,只不過是在centos7上叫作mariadb, 主要是由於mysql被甲骨文公司收購後,可能會有閉源的風險,
因此分支出來了mariadb, 並且徹底兼容mysql.
# 安裝mariadb有三張方法,分別是: 1.yum安裝 2.源代碼編譯安裝 3.rpm包安裝
# yum 安裝的前提條件,準備好yum源,能夠選擇官方源,阿里雲源,163源,清華源等等. # 咱們主要採用的源有兩個, 一個是阿里雲源,可能版本較低,而且軟件包小,功能不多. # 安裝mariadb yum install mariadb-server mariadb -y 二是mariadb官方源 vim /etc/yum.repos.d/MariaDB.repo # 這個文件就是yum庫 而後寫入以下內容: [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.1/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 # 官方源安裝mariadb的方法是: yum install MariaDB-server MariaDB-client -y
systemctl start mariadb #啓動MariaDB systemctl stop mariadb #中止MariaDB systemctl restart mariadb #重啓MariaDB systemctl enable mariadb #設置開機啓動
mysql_secure_installation
#修改mysql密碼 MariaDB [(none)]> set password = PASSWORD('attila666'); # 建立用戶 MariaDB [(none)]> create user attila@'127.0.0.1' identified by 'attila666';
grant 權限 on 數據庫.表名 to 帳戶@主機名 # 對特定數據庫中的特定表受權 grant all privileges on *.* to attila@"%"; # 給attila這個帳戶在任何主機上對全部庫和全部表受權全部權限 grant all privileges on *.* to attila@"%" identified by "666"; # 密碼設置成666,attila全部主機全部權限 # 設置完權限必定要刷新權限,這樣才能生效 flush privileges; # 移除權限 MariaDB [(none)]> revoke all privileges on *.* from yuchao@"%";
中文編碼設置mysql
[mysqld] character-set-server=utf8 collation-server=utf8_general_ci log-error=/var/log/mysqld.log [client] default-character-set=utf8 [mysql] default-character-set=utf8
# 主從複製技術,保證了,數據庫的讀寫分離,併發性更好,而且保障數據安全,防止單點數據庫故障數據丟失 MySQL數據庫的主從複製方案,是其自帶的功能,而且主從複製並非複製磁盤上的數據庫文件,而是經過binlog日誌複製到須要同步的從服務器上。 在複製的過程當中,一臺服務器充當主服務器(Master),接收來自用戶的內容更新, 而一個或多個其餘的服務器充當從服務器(slave),接收來自Master上binlog文件的日誌內容,解析出SQL,從新更新到slave,使得主從服務器數據達到一致。
(1) master將改變記錄到二進制日誌(binary log)中(這些記錄叫作二進制日誌事件,binary log events); (2) slave將master的binary log events拷貝到它的中繼日誌(relay log); (3) slave重作中繼日誌中的事件,將改變反映它本身的數據。
準備兩臺服務器,安裝好倆個數據庫. 192.168.81.132 是主庫 192.168.81.133 是從庫
# 1.編輯主庫的/etc/my.cnf 寫入以下配置 [mysqld] server-id=1 log-bin=s18mysql-bin # 2.該了配置文件,重啓數據庫 systemctl restart mariadb # 3.建立一個用於遠程複製數據的帳戶 create user 'attila'@'%' identified by '666'; # 4.授予yazhou這個帳號,從庫的身份 grant replication slave on *.* to 'attila'@'%'; # 5。鎖住主庫,防止數據寫入,影響實驗 flush table with read lock; # 6.導出當前全部的數據,發送給從庫 在mariadb的環境之外寫這條指令 mysqldump -uroot -p --all-databases > /opt/all.sql # 7.發送這個數據給從庫 有個冒號要注意 scp /opt/all.sql root@192.168.81.133:/opt/ # 8.查看主庫的binlog狀態 show master status\G # 9.進行解鎖 unlock table;
# 1.修改從庫的配置文件/etc/my.cnf # 寫入以下配置 這個id只要和主庫不同就行 server-id=10 # 2.導入主庫的數據庫 #導入數據的第一種方式 mysql -uroot -p < /opt/all.sql #導入數據的第二種方式 MariaDB [s18utf8]> source /opt/all.sql; # 3.此時主從數據庫已經在同一個起始點了,開始數據同步 # 這是一段sql,在mysql中執行的 # 在從庫中寫 關於master的參數都是主庫中的 change master to master_host='192.168.81.132', master_user='attila', master_password='666', # 下面這兩個數據是show master status獲得的 master_log_file='s18mysql-bin.000003', master_log_pos=458; # 這個就是同步的位置是458 # 4.開啓從庫同步(在mysql中輸入的命令) start slave ; # 5.檢測是否主從成功 , show slave status\G # 檢查這2個參數 Slave_IO_Running: Yes Slave_SQL_Running: Yes # 6.此時已經能夠在主庫寫入數據,從庫實時寫入了 # 7.配置mysql主從複製,讀寫分離 # 修改從庫的/etc/my.cnf 添加只讀參數 read-only=true
# 在主庫上建立一個普通用戶,在從庫上進行登陸,查看是否能夠讀寫數據庫, 在主庫上建立的緣由就是從庫也能跟着建立操做 # 必定要是普通用戶,由於root用戶達不到readonly的效果 坑 create user "daniel"@"%" identified by "666"; # 刷新權限 flush privileges # 給這個普通用戶查看數據庫的權限 grant select on *.* to daniel@"%" ; flush privileges # 爲了保證主從同步效果,切換用戶時,不能Ctrl + c 退出 要exit退出