本文章僅作為個人筆記
1.Mysql用戶操作
? ? 查詢當(dāng)前所有用戶/IP/密碼:
? ? ? ? use mysql;
? ? ? ? select user,host,password from user;
? ? 刷新用戶表權(quán)限(修改用戶或者用戶權(quán)限時需要運行):FLUSH privileges;
? ? 添加用戶:CREATE USER 'username'@'host' IDENTIFIED BY 'password';(例: CREATE USER 'test'@'localhost' IDENTIFIED BY 'test';)
? ? 授權(quán)給用戶:GRANT privileges ON databasename.tablename TO 'username'@'host';(例: GRANT privileges ON mysql.user TO 'test'@'localhost';)
? 授權(quán)所有權(quán)限給用戶:GRANT ALL privileges ON *.* TO 'username'@'host';(例:GRANT ALL privileges ON *.* TO 'test'@'localhost';)
? ? 撤銷用戶權(quán)限:REVOKE privilege ON databasename.tablename FROM 'username'@'host';(例: REVOKE privilege ON mysql.user FROM 'test'@'localhost';)
? ? 查看當(dāng)前用戶所有權(quán)限:SHOW grants FOR ‘username’@'host';(例:SHOW grants FOR ‘test’@'localhost';)
? ? 更改用戶密碼:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');(例:SET PASSWORD FOR 'test'@'localhost' = PASSWORD('test'); )
? ? 忘記root密碼時更改root用戶密碼:
? ? ? ? ?先停止mysql服務(wù) service mysql stop ?
? ? ? ? ?新開一個窗口運行 mysqld_safe --skip-grant-tables& ?(開啟mysql安全模式)
? ? ? ? ?在另一個窗口運行 mysql ? (登陸mysql)
? ? ? ? ?在mysql命令行中運行 use mysq;? update user set password=password('password') where user = 'username';(例:update user set password=password('root') where user = 'root';)
? ? 刪除用戶:DROP USER 'username'@'host';(例:DROP USER 'test'@'localhost';)
2.Mysql數(shù)據(jù)備份
? ? 只導(dǎo)表結(jié)構(gòu):mysqldump --opt -d dbname -u username -p > BackupName.sql(例:mysqldump --opt -d test -uroot -p > BackupName.sql)
? ? 整庫備份:mysqldump -u username -p --all-databases > BackupName.sql (例:mysqldump -uroot -p --all-databases > all.sql)
? ? 多庫備份:mysqldump -u username -p --databases dbname1 dbname2 ...-> BackupName.sql(例: mysqldump -uroot -p --databases mysql test > all.sql)
? ? 單庫備份:mysqldump -u username -p dbname > BackupName.sql(例: mysqldump -uroot -p mysql > mysql.sql)
? ? 多表備份:mysqldump -u username -p --databases dbname --tables tablename1 tablename2 ...> BackupName.sql(例:mysqldump -root -p --databases test --tables tablename1 tablename2 > all.sql)
? ? 單表備份:mysqldump -u username -p dbname tablename > BackName.sql(例:mysqldump -uroot -p test tablename1 > all.sql)
3.Mysql數(shù)據(jù)導(dǎo)入
? ? source ****.sql (例:source /tmp/test.sql沃于,如果sql文件包含數(shù)據(jù)庫的創(chuàng)建則無需選中數(shù)據(jù)庫涩咖,如果不包含,需先選擇數(shù)據(jù)庫)
4.Mysql csv相關(guān)
? ? ? 導(dǎo)出csv文件:select 字段名1,字段名2.. from dbname.tablename into outfile 'BackupName.csv' fields terminated by ',' optionally enclosed by '' lines terminated by '/n';(例:select user,host,password from user into outfile '/tmp/test.sql' fields terminated by ',' optionally enclosed by '' lines terminated by '/n';)
? ? ? ? 運行 SHOW VARIABLES LIKE "secure_file_priv"; 查看可輸出文件夾
? ? ? ? 如果返回的結(jié)果為空或者想要更改導(dǎo)出目錄繁莹,需要更改mysql配置檩互,mysql默認配置文件在/etc/my.cnf,可查看是否有secure_file_priv選項咨演,如果有可以直接更改,如果沒有需要添加secure_file_priv=輸出文件夾(例:secure_file_priv=/tmp/)薄风,如果更改配置需要重啟mysql饵较。
? ? 導(dǎo)入csv文件:load data local infile 'BackupName.csv' into table tablename fields terminated by ',' lines terminated by '/n'(first_name,last_name,email);
5.常用命令及技巧
? ? 默認配置文件地址:/etc/my.cnf
? ? 顯示所有數(shù)據(jù)庫: show tables
? ? 選中庫:use 庫名(例: use mysql)
? ? 顯示當(dāng)前選擇的庫的所有表: show tables
? ? 顯示某表所有字段描述:desc 表名(例: desc user)
? ? 顯示主表狀態(tài):show master status
? ? 顯示從表狀態(tài):show slave status
? ? 命令行執(zhí)行sql:mysql -hlocalhost -uroot -proot -e "select * from table"? > test.txt