标签:mysql
1.1启动与关闭mysql二数据库操作
create database ceshi;
show databases
drop database
select user,host from mysql.user;------------查看数据库中的用户
drop user "user"@"主机域"
help show
help show create;
show create database ceshi----------查看创建数据的脚本
select database()-------显示当前库
select user()------------显示当前用户
show tables
show create user
show variables like ‘character_set%‘-------------查看字符集
select version()-------------显示数据库版本
system whoami
system ls -l/
show tables from 数据库
grant all privileges on 数据库. to 123@localhost
revoke 权限 on 数据库. from 123@localhost
show grants for 123@localhost ------------查看用户权限
三、常用命令(常用增删查改略)
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-----查看表结构
truncate table 表名-------------清空表
备份
在mysql命令中备份,system为跳出mysql执行系统命令,执行完毕再返回mysql
mysql>system mysqldump -uroot -p‘oldboy‘-A -B >/tmp/oldboy.sql
mysql>system ls -l /tmp/oldboy.sql
在linux中备份(-A表示完整备份,否则用-B指定多个数据库)
mysqldump -uroot -p‘oldboy‘ -S /data/3306/mysql.sock -B 数据库名>/tmp/bak.sql
恢复
mysql -uroot -p‘oldboy‘-S /data/3307/mysql.sock </tmp/bak.sql
四、备份和恢复
set names gbk ------------------设置字符集
修改字段字符集后,再插入中文就不会乱码了
也可在恢复时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参数
[mysqld]
defaults-character_set=gbk ----------设置服务端server字符集和数据库字符集
提示:1.在my.cnf配置文件里[mysqld]模块下添加字符集配置,生效后,创建数据库和表默认都是这个字符集。2.客户端字符集设置,set names gbk,这样可以确保插入后的中文不出现乱码,对执行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 ####数据库字符集,配置文件指定或建库建表指定
character_set_results gbk ####返回结果字符集,set names gbk
character_set_server gbk ####服务器字符集,配置文件指定或建库建表指定
备份数据库(多实例增加sock)(-A,-B使用)
mysqldump -u用户 -p‘oldboy‘ [-S /data/3306/mysql.sock ] --defaults-characterset=gbk 数据库名>/tmp/bak$(date +%F).sql
mysqldump -u用户 -p‘oldboy‘ [-S /data/3306/mysql.sock ] --defaults-characterset=gbk 数据库名 |gzip>/tmp/bak$(date +%F).sql.gz
提示:-B(创建数据库,use 数据库,切换数据库)
egrep -v "#|*|--|^$" /tmp/bak_$(date +%F).sql
备份多个库(必须使用-B)
mysqldump -u用户 -p‘oldboy‘ [-S /data/3306/mysql.sock ] --defaults-characterset=gbk -B 数据库名1 数据库名2>/tmp/bak$(date +%F).sql
mysqldump -u用户 -p‘oldboy‘ [-S /data/3306/mysql.sock ] --defaults-characterset=gbk -B 数据库名1 数据库名2 |gzip>/tmp/bak$(date +%F).sql.gz
分库备份
mysqldump -u用户 -p‘oldboy‘ -S /data/3306/mysql.sock 数据库名1 >/tmp/bak$(date +%F).sql
mysqldump -u用户 -p‘oldboy‘ -S /data/3307/mysql.sock 数据库名2 >/tmp/bak$(date +%F).sql
备份表(-B系统会认为是两个库,-B系统认为是库和表)(-d只备份结构)
mysqldump -u用户 -p‘oldboy‘ -S /data/3306/mysql.sock 数据库名1 表名 >/tmp/bak$(date +%F).sql
mysqldump -u用户 -p‘oldboy‘ -S /data/3306/mysql.sock 数据库名1 表名1 表名2 >/tmp/bak$(date +%F).sql
mysqldump -u用户 -p‘oldboy‘ -d -S /data/3306/mysql.sock 数据库名1 表名 >/tmp/bak_$(date +%F).sql
恢复数据库(sql文件中没有use 数据库需要在在mysql命令中指定数据库)
方法一:
use 数据库名
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参数
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的参数配置
mysql -u root -p ‘123‘ -S /data/3306/mysql.sock -e "show global status;"------------查看数据库状态
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--------查看缓存区大小
mysql -u root -p ‘123‘ -S /data/3306/mysql.sock -e "set global key_buffer_size =21777218;"----------不重启数据库,修改参数,修改配置文件后,需要重启数据库
sed -i ‘s#被替换值#替换后的值#g‘ 文件名
echo "use database" |mysql -u root -p ‘123‘ -S /data/3306/mysql.sock
类似与-e参数
标签:mysql
原文地址:http://blog.51cto.com/5294868/2089804