您的位置:首页 > 数据库 > MySQL

Mysql常用命令(不定期更新)

2013-04-21 14:55 405 查看
1.用户名、密码、权限
增加新用户:

查询:grant select on database.*  to "username"@"yourip" identified by "password";

全部权限:grant all privileges on *.*  to" username"@"yourip" identified by "password";

本地所有权限:grant all privilegeson *.* to"username"@"localhost" identified by "password";

*.*:  database.table  *.* 所有的数据库和表,根据个人要求修改database和table名

"username"@"yourip"  例如:"root"@"ip地址",即赋予该ip地址登陆此数据库的权限。%代表所有任意ip

增加一个用户skys,并允许从其他机器登陆:

增删改查:grant select,insert,update,delete on *.* to skys@"%" identified by "123456";

全部权限:grant all privileges on *.* to"skys"@"%" identified by "123456";

修改用户名密码:

修改mysql密码:mysqladmin -u用户名 -p旧密码 password 新密码

或进入mysql命令行SET PASSWORD FOR root=PASSWORD("root");

2. 常用数据库命令
查看数据库引擎:     show engines;

显示数据库列表:     show databases;

使用数据库:         use库名;

显示表:             show表名;

显示数据表的结构:   describe 表名;

删库:                dropdatabase 库名;

删表:                droptable 表名;

将表中记录清空:     delete from 表名;

显示表中的记录:select * from 表名;

创建数据库并指定编码:

1. create database 数据库名 character set utf8 collate utf8_general_ci;

2. create  database if not exists 数据库名 default character set utf8;

查看数据库编码格式的命令:

1. show variables like 'character%';显示内容较多

2. show variables like 'collation%';显示内容较少

>show variables like'character%';

+--------------------------+----------------------------+

| Variable_name | Value |

+--------------------------+----------------------------+

| character_set_client | latin1 |

| character_set_connection | latin1 |

| character_set_database | latin1 |

| character_set_filesystem | binary |

| character_set_results | latin1 |

| character_set_server | latin1 |

| character_set_system | utf8 |

| character_sets_dir | /usr/share/mysql/charsets/ |

+--------------------------+----------------------------+

从以上信息可知数据库的编码为latin1,需要修改为gbk或者是utf8;

其中,character_set_client为客户端编码方式;

character_set_connection为建立连接使用的编码;

character_set_database数据库的编码;

character_set_results结果集的编码;

character_set_server数据库服务器的编码;

只要保证以上五个采用的编码方式一样,就不会出现乱码问题。
3. 数据库的导入导出
导出数据库和表:(假设数据库名为skys)

备份数据库:mysqldump -uroot -p --lock-tables skys > news.sql (new 任意名)

备份所有数据库: mysqldump --all-databases > all-databases.sql

备份表:mysqldump -u root -p skys tablename > news.sql;

不备份某个表(多个则写多个):mysqldump -u root -p --ignore-table=sks.tablename skys > news.sql;

MySQL备份并刷新日志:mysqldump -uroot -p密码 --flush-logs --master-data=2 --lock-tables new > new.sql

两个参数的解说: --single-transaction 用于innodb引擎,而--lock-tables用于myisam。

常用:

只导出结构:mysqldump -uroot -p -q -d --lock-tables 数据库名> news1.sql

只导出数据不导出结构:mysqldump -uroot -p -q -t --lock-tables 数据库名> news2.sql

导出存储过程:mysqldump -uroot -n -t -d -R --triggers=false new > new.sql

导出数据库导出存储过程导出事件:mysqldump -uroot -nR --events new> a.sql;

导出事件:mysqldump -uroot -p -q -t -d --events skys > events.sql

导入数据和表:

命令行导入数据库:mysql -uroot -p < news.sql

mysql命令下执行导入:use 数据库名; source news.sql;

运行存储过程:call 名称(参数);

备注1:用命令导出数据库和用Navicat等客户端导出的数据库多少会存在差异,通过linux系统下的mysql命令

导出的数据库建议仍然使用命令导入,通过客户端导出的数据库用命令导入时,会发现经常爆warning警告!

备注2:对于不同版本的mysql。建议分别导出数据结构和数据,再重新导入。(可减少出错率,防止出现不必要损失)

备注3:分别导出数据和导出结构时,需要注意结构中是否有DROP命令,根据个人情况选择是否删除DROP命令。

本文出自 “雷小伤” 博客,请务必保留此出处http://zdevops.blog.51cto.com/2579684/1182581
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: