mysql丢失召回_mysql笔记
1.1啟動(dòng)與關(guān)閉mysql
單實(shí)例:
方法一:
/etc/init.d/mysqld start/stop
netstat -lnt|grep 3306
提示:/etc/init.d/mysqld由mysql程序中的mysql.server復(fù)制而來
方法二:
/usr/local/mysql/bin/mysqld_safe --user=mysql &
killall mysqld重復(fù)使用知道出現(xiàn)mysqld: no process killed
注意:關(guān)閉直到出現(xiàn)mysqld: no process killed表示完成關(guān)閉操作。方法二的關(guān)閉命令一般生產(chǎn)環(huán)境下不使用。
多實(shí)例:
/data/3306/mysql start/stop
/data/3307/mysql start/stop
1.2登錄mysql
單實(shí)例:
1.mysql----剛裝完系統(tǒng)無密碼情況登錄方式
2.mysql -uroot --------剛裝完系統(tǒng)無密碼情況登錄方式
3.mysql -uroot -p ------------這里標(biāo)準(zhǔn)命令行登錄命令
4.mysql -uroot -p'oldboy123'----------非腳本里一般不這樣用,密碼明文的會(huì)泄露密碼
多實(shí)例:
mysql -uroot -p -S /data/3306/mysql.sock
1.3mysql授權(quán)
CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';GRANT ALL ON db1.TO 'jeffrey'@'localhost';
意思兩條等同于GRANT ALL ON db1. TO 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
GRANT SELECT ON db2.invoice TO 'jeffrey'@'localhost';
GRANT USAGE ON . TO 'jeffrey'@'localhost' WITH MAX_QUERIES_PER_HOUR 90;
1.4設(shè)置修改mysql root用戶密碼
由于安裝mysql后,默認(rèn)的管理員root密碼為空,很不安全,因此需要修改
mysqladmin -u root password 'ryan'
修改root密碼方法一
mysqladmin -u root -p'oldboy123' password 'oldboy'
修改root密碼方法二
mysql>UPDATE mysql.user SET password=PASSWORD("oldboy123") WHERE user='root';
mysql>FLUSH PRIVILEGES;
修改root密碼方法三
mysql安裝完畢后,root默認(rèn)口令為空,需要馬上修改root口令
mysql>set password=password('oldboy123')
1.5 如何召回丟失的mysql密碼
單實(shí)例:
killall mysqld
mysqld_safe --skip-grant-table &
mysql -u root -p
update mysql.user set password=PASSWORD('123456') WHERE USER='root'
killall mysqld
重啟mysql服務(wù)/etc/init.d/mysqld start
多實(shí)例:
killall mysqld
mysqld_safe --defaults-file=/data/3306/my.cnf --skip-grant-table &
mysql -u root -p -S /data/3306/mysql.sock
修改密碼
mysql>UPDATE mysql.user SET password=PASSWORD("oldboy123") WHERE user='root';
mysql>FLUSH PRIVILEGES;
mysq>exit;
重啟登錄測試
killall mysqld
單實(shí)例:/etc/init.d/mysqld restart
多實(shí)例:/data/3306/mysql restart
二數(shù)據(jù)庫操作
create database ceshi;
show databases
drop database
select user,host from mysql.user;------------查看數(shù)據(jù)庫中的用戶
drop user "user"@"主機(jī)域"
help show
help show create;
show create database ceshi----------查看創(chuàng)建數(shù)據(jù)的腳本
select database()-------顯示當(dāng)前庫
select user()------------顯示當(dāng)前用戶
show tables
show create user
show variables like 'character_set%'-------------查看字符集
select version()-------------顯示數(shù)據(jù)庫版本
system whoami
system ls -l/
show tables from 數(shù)據(jù)庫
grant all privileges on 數(shù)據(jù)庫.to 123@localhost
revoke 權(quán)限 on 數(shù)據(jù)庫. from 123@localhost
show grants for 123@localhost ------------查看用戶權(quán)限
三、常用命令(常用增刪查改略)
select from test limit 6,5;-------查詢test中從7條記錄開始,查5條記錄
select from test limit 6;-----查詢6條記錄
上邊sql等同于select from test limit 0,6;
\G----------以列表顯示
desc mysql.user-----查看表結(jié)構(gòu)
truncate table 表名-------------清空表
備份
在mysql命令中備份,system為跳出mysql執(zhí)行系統(tǒng)命令,執(zhí)行完畢再返回mysql
mysql>system mysqldump -uroot -p'oldboy'-A -B >/tmp/oldboy.sql
mysql>system ls -l /tmp/oldboy.sql
在linux中備份(-A表示完整備份,否則用-B指定多個(gè)數(shù)據(jù)庫)
mysqldump -uroot -p'oldboy' -S /data/3306/mysql.sock -B 數(shù)據(jù)庫名>/tmp/bak.sql
恢復(fù)
mysql -uroot -p'oldboy'-S /data/3307/mysql.sock
四、備份和恢復(fù)
set names gbk ------------------設(shè)置字符集
修改字段字符集后,再插入中文就不會(huì)亂碼了
也可在恢復(fù)時(shí)mysql的命令行中增加字符集defaults-character_set=gbk
mysql -uroot -p'oldboy' -e "select from oldboy.test;"
mysql -uroot -p'oldboy' -e "set names gbk;select * from oldboy.test;"
提示:1.文件本身字符集要正確gb2312
2.文件中加入set names gbk
更改my.cnf參數(shù)
[mysqld]
defaults-character_set=gbk ----------設(shè)置服務(wù)端server字符集和數(shù)據(jù)庫字符集
提示:1.在my.cnf配置文件里[mysqld]模塊下添加字符集配置,生效后,創(chuàng)建數(shù)據(jù)庫和表默認(rèn)都是這個(gè)字符集。2.客戶端字符集設(shè)置,set names gbk,這樣可以確保插入后的中文不出現(xiàn)亂碼,對執(zhí)行set names gbk前插入的中文無效
*show variables like 'character_set%'
character_set_client gbk ####客戶端字符集,set names gbk
character_set_connection gbk ####連接字符集,set names gbk
character_set_database gbk ####數(shù)據(jù)庫字符集,配置文件指定或建庫建表指定
character_set_results gbk ####返回結(jié)果字符集,set names gbk
character_set_server gbk ####服務(wù)器字符集,配置文件指定或建庫建表指定
備份數(shù)據(jù)庫(多實(shí)例增加sock)(-A,-B使用)
mysqldump -u用戶 -p'oldboy' [-S /data/3306/mysql.sock ] --defaults-characterset=gbk 數(shù)據(jù)庫名>/tmp/bak$(date +%F).sql
mysqldump -u用戶 -p'oldboy' [-S /data/3306/mysql.sock ] --defaults-characterset=gbk 數(shù)據(jù)庫名 |gzip>/tmp/bak$(date +%F).sql.gz
提示:-B(創(chuàng)建數(shù)據(jù)庫,use 數(shù)據(jù)庫,切換數(shù)據(jù)庫)
egrep -v "#|*|--|^$" /tmp/bak_$(date +%F).sql
備份多個(gè)庫(必須使用-B)
mysqldump -u用戶 -p'oldboy' [-S /data/3306/mysql.sock ] --defaults-characterset=gbk -B 數(shù)據(jù)庫名1 數(shù)據(jù)庫名2>/tmp/bak$(date +%F).sql
mysqldump -u用戶 -p'oldboy' [-S /data/3306/mysql.sock ] --defaults-characterset=gbk -B 數(shù)據(jù)庫名1 數(shù)據(jù)庫名2 |gzip>/tmp/bak$(date +%F).sql.gz
分庫備份
mysqldump -u用戶 -p'oldboy' -S /data/3306/mysql.sock 數(shù)據(jù)庫名1 >/tmp/bak$(date +%F).sql
mysqldump -u用戶 -p'oldboy' -S /data/3307/mysql.sock 數(shù)據(jù)庫名2 >/tmp/bak$(date +%F).sql
備份表(-B系統(tǒng)會(huì)認(rèn)為是兩個(gè)庫,-B系統(tǒng)認(rèn)為是庫和表)(-d只備份結(jié)構(gòu))
mysqldump -u用戶 -p'oldboy' -S /data/3306/mysql.sock 數(shù)據(jù)庫名1 表名 >/tmp/bak$(date +%F).sql
mysqldump -u用戶 -p'oldboy' -S /data/3306/mysql.sock 數(shù)據(jù)庫名1 表名1 表名2 >/tmp/bak$(date +%F).sql
mysqldump -u用戶 -p'oldboy' -d -S /data/3306/mysql.sock 數(shù)據(jù)庫名1 表名 >/tmp/bak_$(date +%F).sql
恢復(fù)數(shù)據(jù)庫(sql文件中沒有use 數(shù)據(jù)庫需要在在mysql命令中指定數(shù)據(jù)庫)
方法一:
use 數(shù)據(jù)庫名
source 備份的sql文件
方法二:
mysql -u root -p '123' -S /data/3306/mysql.sock -e "use test;source /tmp/bak_212.sql;"
方法三:
mysql -u root -p '123' -S /data/3306/mysql.sock < /tmp/bak.sql
-e參數(shù)
mysql -u root -p '123' -S /data/3306/mysql.sock -e "select * from test;"
mysql -u root -p '123' -S /data/3306/mysql.sock -e "show full processlist;" >a.log
mysql -u root -p '123' -S /data/3306/mysql.sock -e "show variables;"--------------查看mysql的參數(shù)配置
mysql -u root -p '123' -S /data/3306/mysql.sock -e "show global status;"------------查看數(shù)據(jù)庫狀態(tài)
mysql -u root -p '123' -S /data/3306/mysql.sock -e "show global status;" |grep select
mysql -u root -p '123' -S /data/3306/mysql.sock -e "show variables;" | grep key_buffer_size--------查看緩存區(qū)大小
mysql -u root -p '123' -S /data/3306/mysql.sock -e "set global key_buffer_size =21777218;"----------不重啟數(shù)據(jù)庫,修改參數(shù),修改配置文件后,需要重啟數(shù)據(jù)庫
sed -i 's#被替換值#替換后的值#g' 文件名
echo "use database" |mysql -u root -p '123' -S /data/3306/mysql.sock
類似與-e參數(shù)
總結(jié)
以上是生活随笔為你收集整理的mysql丢失召回_mysql笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 定时器停止_java-MyS
- 下一篇: name optimize is not