1.用户名、密码、权限 mysql
增长新用户: linux
查询:grant select on database.* to "username"@"yourip" identified by "password"; sql
所有权限: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
ide增长一个用户skys,并容许从其余机器登录: 编码
增删改查:grant select,insert,update,delete on *.* to skys@"%" identified by "123456"; spa
所有权限: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命令。