安裝MYSQL
看了很多教程都不靠譜。。。還是官方教程最靠譜:
Installing MySQL on Unix/Linux Using Generic Binaries
下載mysql5.6.37-linux-glibc2.12-x86_64,解壓到/usr/local/,改名為mysql
新建用戶和用戶組:mysql
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
cd /usr/local/mysql
(重要!)sudo chown -R mysql .
(重要!)sudo chgrp -R mysql .
sudo scripts/mysql_install_db --user=mysql
執(zhí)行 scripts/mysql_install_db 時出錯。
./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
需要執(zhí)行sudo apt-get install libaio-dev,然后再執(zhí)行安裝腳本
修改當前目錄擁有者為root用戶:執(zhí)行命令
sudo chown -R root .
修改當前data目錄擁有者為mysql用戶:執(zhí)行命令
sudo chown -R mysql data
sudo bin/mysqld_safe --user=mysql &
此時這個窗口會卡住,新建一個terminal,進入/usr/local/mysql中
啟動bin/mysql可以進入mysql控制臺,輸入exit;退出
執(zhí)行sudo ./bin/mysql_secure_installation進行root賬戶密碼的修改等操作。
然后按ctrl+C關掉那個卡住的進程
配置環(huán)境變量
sudo nano /etc/profile
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
設置開機自啟:
參考:ubuntu linux下mysql開機自啟動
sudo cp support-files/mysql.server /etc/init.d/mysql.server
sudo chmod +x /etc/init.d/mysql.server
sudo cp my.cnf /etc
sudo nano /etc/my.cnf
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
使用/etc/init.d/mysql.server start –user=mysql啟動服務
啟動失敗的話重啟一下,開機后使用mysql –u root –p登陸會出現(xiàn)can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’(2)的錯誤,這是因為服務還未啟動。
使用/etc/init.d/mysql.server start –user=mysql啟動服務,此時會成功。
設為開機自啟sudo update-rc.d -f mysql.server defaults
還需要配置一下訪問權限:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'hadoop-sna' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
這樣就可以使用root用戶在任意地點登陸,而不再限于localhost了
關于服務的三個命令。
啟動mysql:service mysql.server start
停止mysql:service mysql.server stop
查看mysql運行狀態(tài):service mysql.server status
高可用的MySQL雙機熱備安裝教程:
開啟二進制日志,設置id
sudo nano /etc/my.cnf
[mysqld]
server-id = 1 #backup這臺設置2
log-bin = mysql-bin
binlog-ignore-db = mysql,information_schema #忽略寫入binlog日志的庫
auto-increment-increment = 2 #字段變化增量值
auto-increment-offset = 1 #初始字段ID為1
slave-skip-errors = all #忽略所有復制產生的錯誤
重啟MYSQL服務
service mysqld restart
先查看下log bin日志和pos值位置
里面有個File和Position,分別是log_file和log_pos的值,一會兒要填
mysql> show master status;
master配置如下:
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'10.0.2.%' IDENTIFIED BY 'replication';
mysql> flush privileges;
mysql> change master to
-> master_host='10.0.2.7', # 此處輸入slave的ip地址
-> master_user='replication',
-> master_password='replication',
-> master_log_file='mysql-bin.000001',
-> master_log_pos=120; #對端狀態(tài)顯示的值
mysql> start slave; #啟動同步
backup配置如下:
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'10.0.2.%' IDENTIFIED BY 'replication';
mysql> flush privileges;
mysql> change master to
-> master_host='10.0.2.4', # 此處輸入master的ip地址
-> master_user='replication',
-> master_password='replication',
-> master_log_file='mysql-bin.000001',
-> master_log_pos=120;
mysql> start slave;
MYSQL雙擊熱備安裝完成
測試
在一臺機器上建立一個數(shù)據(jù)庫,創(chuàng)建一個表,在另一臺機器上查詢是有結果的,說明安裝成功。