mysql5.6 使用雜記

##############################################################
建備份用戶:
create user 'backuser'@'localhost' identified by 'itsecu@890';
grant backup,select,insert,update,delete,create on DCOM. to backuser@'localhost';
grant show view,lock tables,trigger,select,insert,update,delete,create on DCOM.
to backuser@'localhost';
update user set plugin='mysql_native_password',password=PASSWORD("itsecu@890") where user="backuser";
flush privileges;

##############################################################
拒絕登錄解決:
update user set plugin='mysql_native_password',password=PASSWORD("itsecu@890") where user="backuser";
備份報錯:
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='backuser';

##############################################################
設置安全登錄:
mysql_config_editor set --login-path=backtest --user=backuser --password

##############################################################

刪庫問題:
報:
ERROR 1010 (HY000): Error dropping database (can't rmdir '.\qpweb', errno: 41)
在庫運行的情況下刪除數據庫數據目錄下面的數據文件,
再建庫,然後導入數據。

show create database DCOM;
CREATE DATABASE DCOM /!40100 DEFAULT CHARACTER SET utf8 /
##############################################################

備份:
只導出數據庫中的數據(不包含表結構):
mysqldump --login-path=backuser --add-locks -q -t DCOM > test.sql
只導出數據庫中的表結構(不包含數據):
mysqldump --login-path=backuser --add-locks -q -d DCOM > test.sql
只導出表結構不包含數據:
mysqldump --login-path=backuser --add-locks -q -d DCOM 表名> test.sql
只導出數據不導出表結構:
mysqldump --login-path=backuser --add-locks -q -t DCOM 表名> test.sql
備份所有數據:
mysqldump --login-path=backuser --add-locks -q DCOM > test.sql
恢復數據:
儘可能使用source
mysql --login-path=backuser -e "source test.sql"

##############################################################

建庫:
mysql --login-path=test -e "CREATE DATABASE DCOM DEFAULT CHARACTER SET utf8;"
導入表結構:
mysql --login-path=test -e "source /root/97tables.sql;" DCOM
導入數據:
mysql --login-path=test -e "source /root/sql/2018-03-28/T_ADMIN_OPERATOR.sql;" DCOM
mysql --login-path=test -e "source /root/sql/2018-03-28/T_ADMIN_PERMISSION.sql;" DCOM
mysql --login-path=test -e "source /root/sql/2018-03-28/T_ADMIN_POST_PERMISSION.sql;" DCOM
查詢表數據行數:
mysql --login-path=test -e "select count(*) from DCOM.T_ADMIN_ROLE;"

##############################################################
備份數據庫中數據錶行數不爲0的表中數據,不包括表結構:
20,0-1 All
#!/bin/bash
path=/opt/sql
dir=mkdir $path/$(date +%Y-%m-%d)
dir1=$(date +%Y-%m-%d)
mysql --login-path=backuser -e "show tables from DCOM" > $path/$dir1/tables.txt

for i in cat $path/$dir1/tables.txt
do
number=mysql --login-path=backuser -e "select count(*) from DCOM.$i" | tail -1
if [ $number -gt 0 ]
then echo "$i" >> $path/$dir1/datanum.txt
else echo "$i" >> $path/$dir1/nodatanum.txt
fi
done

for tables in cat $path/$dir1/datanum.txt
do
mysqldump --login-path=backuser --add-locks -q -t DCOM $tables > $path/$dir1/$tables.sql
done

rm -f $path/$dir1/{datanum.txt,nodatanum.txt,tables.txt}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章