mysql操作

mysql操作

用户操作

  • mysql新建用户
create user 'easy'@'%' identified by 'sublet';
  • 删除用户
drop user 'username'@'host';
  • 用户改名字
rename user 'jack'@'%' to 'jim'@'%';
  • 修改密码
1.用set password命令
  mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
2.用mysqladmin [root@rhel5 ~]# mysqladmin -uroot -p123456 password 1234abcd
  备注: 格式:mysqladmin -u用户名 -p旧密码 password 新密码
3.用update直接编辑user表

权限管理

  • 用户赋权
grant all privileges on databasename.tablename to 'username'@'host' IDENTIFIED BY 'PASSWORD';
grant all privileges on databasename.tablename to 'username'@'host';
/*授予用户通过外网IP对于该数据库的全部权限*/

  grant all privileges on `test`.* to 'test'@'%' ;
  
  /*授予用户在本地服务器对该数据库的全部权限*/

  grant all privileges on `test`.* to 'test'@'localhost';   

   grant select on test.* to 'user1'@'localhost';  /*给予查询权限*/

   grant insert on test.* to 'user1'@'localhost'; /*添加插入权限*/

   grant delete on test.* to 'user1'@'localhost'; /*添加删除权限*/

   grant update on test.* to 'user1'@'localhost'; /*添加权限*/

  flush privileges; /*刷新权限*/

GRANT命令说明:
    priveleges(权限列表),可以是all priveleges, 表示所有权限,也可以是select、update等权限,多个权限的名词,相互之间用逗号分开。
    on用来指定权限针对哪些库和表。
     *.* 中前面的*号用来指定数据库名,后面的*号用来指定表名。
     to 表示将权限赋予某个用户, 如 jack@'localhost' 表示jack用户,@后面接限制的主机,可以是IP、IP段、域名以及%,%表示任何地方。注意:这里%有的版本不包括本地,以前碰到过给某个用户设置了%允许任何地方登录,但是在本地登录不了,这个和版本有关系,遇到这个问题再加一个localhost的用户就可以了。
     identified by指定用户的登录密码,该项可以省略。
      WITH GRANT OPTION 这个选项表示该用户可以将自己拥有的权限授权给别人。注意:经常有人在创建操作用户的时候不指定WITH GRANT OPTION选项导致后来该用户不能使用GRANT命令创建用户或者给其它用户授权
    备注:可以使用GRANT重复给用户添加权限,权限叠加,比如你先给用户添加一个select权限,然后又给用户添加一个insert权限,那么该用户就同时拥有了select和insert权限。
  • 查看权限
show grants;
+---------------------------------------------------------------------+
| Grants for root@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION        |
+---------------------------------------------------------------------+
rows in set (0.00 sec)
  • 查看某个用户的权限
show grants for 'jack'@'%';
+-----------------------------------------------------------------------------------------------------+
| Grants for jack@%                                                                                   |
+-----------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'jack'@'%' IDENTIFIED BY PASSWORD '*9BCDC990E611B8D852EFAF1E3919AB6AC8C8A9F0' |
+-----------------------------------------------------------------------------------------------------+
row in set (0.00 sec)
  • 删除权限
revoke privileges on databasename.tablename from 'username'@'host';
revoke delete on test.* from 'jack'@'localhost';
  • 刷新权限
flush privileges; /*刷新权限*/

数据同步

#!/bin/bash

#定义变量user(数据库用户名),passwd(数据库密码),date(备份的时间标签)
#dbname(需要备份的数据库名称,根据实际需求需要修改该变量的值,默认备份mysql数据库)

user='rbidb'         #数据库用户
shost='10.140.40.205'
thost='rm-2ze41eezgm97hho9333150.mysql.rds.aliyuncs.com'
passwd='0555CE78f5872af2ef9'     #数据库密码
dbname=rbi           #需要备份的数据库
date=$(date +%Y%m%d)    #给备份后的数据库设值
filename="$dbname"-"`date '+%Y%m%d-%H:%M:%S'`".sql

[ ! -d ./mysqlbackup ] && mkdir ./mysqlbackup  #查看有可以放备份的数据的文件夹,如果没有则自动创建
mysqldump -h "$shost" -u "$user" -p"$passwd" --opt "$dbname" > ./mysqlbackup/"$filename"
echo "$user ,$passwd,$dbname ,$dbname-${date}.sql"

mysql -h "$thost" -u "$user" -p"$passwd" "$dbname"< ./mysqlbackup/"$filename"
  • 清空表
truncate table house;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容