Mysql导入导出与用户授权相关sql

MySql 导入

-- 选择数据库
   mysql>use abc;

-- 设置数据库编码
   mysql>set names utf8;

-- 导入数据(注意sql文件的路径)
   mysql>source /home/abc/abc.sql;

MySql 导出

执行: mysqldump命令,如果/usr/bin目录下没有该命令则需要进入mysql安装目录bin下面执行

导出该库全部全部表结构与表数据
#语法: mysqldump -u 用户名-p 数据库名  --default-character-set=utf8 > 导出路径/导出文件名

#示例: 用root用户以utf8编码格式导出test库到/tmp目录下,导出文件名为test.sql
   mysqldump -u root -p test --default-character-set=utf8 >/tmp/test.sql

只导出数据库函数与过程
#语法: mysqldump -u 用户名 -p -ntd -R  数据库名 >  导出路径/导出文件名
#     其中的 -ntd 是表示导出存储过程;-R是表示导出函数

#示例: 用root用户导出test库下的存储过程函数到/tmp目录下,导出文件名为testfun.sql
   mysqldump -u root -p -ntd -R  test >/tmp/testfun.sql

导出指定表的结构与数据(单表)
#语法: mysqldump -u 用户名 -p 数据库名 表名 > 导出路径/文件名
#示例: 导出test库中的user表
   mysqldump -u root -p test user > /tmp/user.sql


导出指定表的结构与数据(多表)
#语法: mysqldump -u 用户名 -p 数据库名 表1 表2 表3> 文件名
#  多张表名用空格隔开
#示例: 导出test库中的user,user_one表
   mysqldump -u root -p test user user_one > /tmp/user2.sql

只导出事件
#示例
    mysqldump -E -ndt test -u root -p > /tmp/my_event.sql

用户的创建及授权

查看当前所有用户
mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

查看某个用户的全部权限
mysql> SHOW GRANTS FOR '用户名';

创建针对所有库并且可从任意ip访问的用户
-- 示例:创建commentUser用户,密码:emans_My0624
mysql> GRANT ALL PRIVILEGES ON *.* TO commentUser@'%' IDENTIFIED BY 'emans_My0624' WITH GRANT OPTION;

刷新权限
mysql> FLUSH PRIVILEGES;

授权SELECT,INSERT,UPDATE,CREATE权限 关于my_test库下user表给test_account用户
-- 该条语句同事创建了test_account用户
mysql> GRANT  SELECT,INSERT,UPDATE,CREATE ON my_test.user to test_account@'%' IDENTIFIED BY 'emans_My0624';

收回test_account用户关于my_test.user表的全部权限
mysql> REVOKE ALL PRIVILEGES on my_test.user from test_account;

删除账户
mysql> DELETE FROM mysql.user WHERE user ='test_account';


修改密码
-- 5.7版本的语法:  
mysql> update mysql.user set authentication_string=password('新密码') where user='用户名' ;
-- 示例:
update mysql.user set authentication_string=password('emans_My0624123') where user='test_account' ;

-- 低版本的语法:
mysql> UPDATE mysql.user SET password=PASSWORD("新密码") WHERE user='用户名';
-- 示例:
mysql> UPDATE mysql.user SET password=PASSWORD("emans_My0624123") WHERE user='test_account';	
MySql批量删除当前库下表名符合条件的表,先拼接sql语句再执行
  
Select CONCAT( 'drop table ', table_name, ';' ) FROM information_schema.tables Where table_schema='数据库名' and table_name LIKE '%表名关键字%';
MySql批量修改当前库下表名表名为大写的表,替换为小写
Select CONCAT( 'RENAME TABLE ', table_name, ' to ' ,LOWER(table_name),';') 
FROM information_schema.tables Where table_schema='数据库名' and table_name LIKE '表名关键字%';

 

你可能感兴趣的:(linux-mysql)