二進制安裝 - mysql-5.5.49mysql
mkdir /home/oldboy/tools -p cd /home/oldboy/tools/ rz #mysql-5.5.49-linux2.6-x86_64.tar.gz tar -xf mysql-5.5.49-linux2.6-x86_64.tar.gz mv mysql-5.5.49-linux2.6-x86_64 /application/mysql-5.5.49 useradd -s /sbin/nologin mysql -M ln -s /application/mysql-5.5.49/ /application/mysql cd /application/mysql /bin/cp support-files/my-small.cnf /etc/my.cnf chown -R mysql.mysql /application/mysql/ /application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data/ --user=mysql cp support-files/mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld /etc/init.d/mysqld start echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile source /etc/profile mysqladmin -u root password '123456' lsof -i:3306
啓動:/etc/init.d/mysqld startlinux
中止:/etc/init.d/mysqld stopsql
重啓:/etc/init.d/mysqld restartshell
登錄:mysql -u帳號 -p密碼數據庫
設置密碼:mysqladmin -u root password '新密碼'vim
清理無用的MySQL用戶及庫app
select user,host from mysql.user drop user "root@::1";
刪除無用數據庫ssh
drop database test; show database test;
查看當前全部的數據庫ide
show databases;
查看當前的登錄用戶測試
select user();
方法一: echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile source /etc/profile 方法二: ln -s /application/mysql/bin/* /usr/local/sbin/
mkdir /data/{3306,3307}/data -p 多實例配置文件模板 : ls -l support-files/my*.cnf 編輯多實例配置文件 : vim /data/3306/my.cnf vim /data/3307my.cnf 建立啓動文件 : vim /data/3306/mysql vim /data/3307mysql
啓動多實例:
mysqld_safe--defaults-file=/data/3306/my.cnf 2>&1 >/dev/null & mysqld_safe--defaults-file=/data/3307/my.cnf 2>&1 >/dev/null &
中止多實例:
mysqladmin -u root -p密碼 -S /data/3306/mysql.sock shutdown mysqladmin -u root -p密碼 -S /data/3307/mysql.sock shutdown
cd /application/mysql/scripts ./mysql_install_db --basedir=/application/mysql --datadir=/data/3306/data --user=mysql ./mysql_install_db --basedir=/application/mysql --datadir=/data/3307/data --user=mysql
啓動
/data/3306/mysql start /data/3307/mysql start
中止
/data/3306/mysql stop /data/3307/mysql stop
重啓
/data/3306/mysql stop /data/3307/mysql stop
開機自啓動
echo "#mysql multi instance" >>/etc/rc.local echo "/data/3306/mysql start" >>/etc/rc.local echo "/data/3307/mysql start" >>/etc/rc.local
登錄多實例數據庫
mysql -S /data/3306/mysql.sock
設置/修改多實例數據庫密碼
mysqladmin -u root -S /data/3306/mysql.sock password '密碼' mysql -uroot -p密碼 -S /data/3306/mysql.sock 實例的密碼存放在/data/3306/mysql文件中,需修改權限爲700,防止密碼被其餘用戶看到 find /data -type f -name "mysql" -exec chmod 700 {} \; 修改實例密碼:sed -i '13 s#舊密碼#新密碼#g' /data/3306/mysql /data/3307/mysql
禁止使用pkill、kill -九、killall -9等命令強制殺死數據庫,這會引發數據庫沒法啓動等故障的發生
MySQL的主從複製並非數據庫磁盤上的文件直接拷貝,而是Master上開啓binlog記錄功能,Slave從Master端獲取binlog日誌,而後再在Slave上以相同順序執行獲取的binlog日誌中所記錄的各類SQL記錄。
[mysqld] log-bin = /data/3006/mysql-bin
vim /data/3306/my.cnf
[mysqld] server-id = 1 log-bin = /data/3006/mysql-bin
/data/3306/mysql restart
登錄數據庫檢查參數是否生效
egrep "server-id|log-bin" /data/3306/my.cnf
mysql -uroot -p'密碼' -S /data/3306/mysql.sock
show variables like 'server_id'; show variables like 'log_bin';
mysql -uroot -p'密碼' -S /data/3306/mysql.sock
grant replication slave on *.* to 'rep'@'10.0.0.%' identified by '密碼'; flush privileges;
檢查建立的rep複製帳號
select user,host from mysql.user; select user,host from mysql.user where user='rep'; MySQL權限說明:
鎖表只讀,而後mysqldump出數據庫,而後再解鎖
flush table with read lock; show variables like '%timeout%';
顯示信息記錄在案
show master status; 或mysql -u root -p '密碼' -S /data/3306/mysql.sock -e "show master status"
鎖表後,必定要新開ssh窗口,再導出數據庫全部數據
mkdir /server/backup -p mysqldump -uroot -p密碼 -S /data/3306/mysql.sock --events -A -B|gzip >/server/backup/mysql_bak.$(date +%F).sql.gz
gzip -d mysql_bak.2017-01-01.sql.gz mysql -uroot -p'密碼' -S /data/3307/mysql.sock < mysql_back.2017-01-01.sql
mysql -uroot -p'密碼' -S /data/3307/mysql.sock << EOF CHANGE MASTER TO MASTER_HOST='10.0.0.7' MASTER_PORT='3306' MASTER_USER='rep' MASTER_PASSWORD='密碼' MASTER_LOG_FILE='mysql-bin.000008' MASTER_LOG_POS=342
mysql -uroot -p密碼 -S /data/3307/mysql.sock -e "start slave;" mysql -uroot -p密碼 -S /data/3307/mysql.sock -e "show slave status;"
主庫上建立個帳號 mysql -uroot -p密碼 -S /data/3306/mysql.sock -e "create database testtest;" 從庫上查看 mysql -uroot -p密碼 -S /data/3307/mysql.sock -e "show databases like 'testtest';"