mysql 创建新用户 并赋予权限

1,854 阅读1分钟

转自:my.oschina.net/u/165872/bl…

1、以管理员身份登录mysql

mysql -u root -p

2、选择mysql数据库

use mysql

3、创建用户并设定密码

create user 'testuser'@'localhost' identified by 'testpassword'

4、使操作生效

flush privileges

5、为用户创建数据库

create database testdb

6、为用户赋予操作数据库testdb的所有权限

grant all privileges on testdb.* to test@'%' identified by '1234';

或者GRANT ALL PRIVILEGES ON cattle.* TO 'mmzx'@'%' WITH GRANT OPTION; alter user 'root'@'%' identified with mysql_native_password by '123456';

7、使操作生效

flush privileges

8、用新用户登录

mysql -u test -p

9、导入导出数据

mysqldump -u root -pxx -h 192.168.1.2 dbname> dbfile_20160704.sql

mysql -u root -pxxx -h 127.0.0.1 dbname< dbfile_20160704.sql

对于一个特别特别大的表,比如表的大小超过10G甚至更大的时候,使用上面的导入语句就会出现错误:

heck the manual that corresponds to your MySQL server version for the right syntax to use near Warning: option 'max_allowed_packet': unsigned value xxxxxxxx  adjusted to  xxxxxx' at line 1

解决办法是: mysqldump -h 127.0.0.1 -u${user_name} -p${passwd}   --extended-insert=false dbName    > data_2.sql

-e, --extended-insert

使用全新多行INSERT语法,默认开启(给出更紧缩并且更快的插入语句)

使用--extended-insert=false导出的表如下图这种,每行一个insert语句。

使用--extended-insert=true导出的表如下图这种,一个很长的insert语句。

所以,如果合并insert语句,虽然效率增加了不少,大概会有3-4倍,但是每条insert语句的大小也会增大,所以,会出现max_allowed_packet超限的情况。