且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

mysql 数据库创建用户开放远程登录-禁用root远程权限---开放其它用户远程登录---数据库导入导出

更新时间:2022-04-01 23:46:21


mysql   禁用root远程权限---开放其它用户远程登录---数据库导入导出
 #  开放数据库用户远程登录
mysql -uroot -pWWWeisccn111@# -e "create database zabbix character set utf8 collate utf8_bin;"
                                                                        # create  [kriˈet] 创建 ;database [ˈdædəˌbeɪs] 数据库;character [ˈkɛrɪktər] 字符,设置字符类型,collate [kəˈlet] 核对字符
                                                                        # 登陆数据库,创建库编码为utf8
# DROP database zabbix                          # 删除数据库
mysql -uroot -pWWWeisccn111@# -e "grant all on zabbix.* to 'zabbix'@'localhost ' identified by '123'"
                                                                        # % 是允许远程登录,localhost 是本地登录
                                                                        # grant [grænt] 授权;all 所有,on 在...上;    授予zabbix账户在 localhost [ləʊkæl'həʊst] 本机的所有权限; identified [aɪ'dentɪfaɪd] 识别(设置密码)
                                                                        # identified [aɪ'dentɪfaɪd] 标识;by 由 123密码:设置zabbix 的 DBPassword
                                                                        # 123 是密码,需要单引号,数据库账户和本机需要
mysql -uroot -pWWWeisccn111@# -e "grant all on zabbix.* to 'zabbix'@'%' identified by '123'"
                                                                        # 开放远程登录  %     首先要开放本地登录 localhost
# DROP USER 'zabbix'@'localhost';               # 删除用户
#------------ 一键创建和删除数据库和用户  --------------#
user="eisc";database="eisc";passwd="eisc.cn"   ; mysql -e "create database $database character set utf8 collate utf8_bin; grant all on $database.* to '$user'@'localhost' identified by '$passwd'; grant all on $database.* to '$user'@'%' identified by '$passwd'; show databases;SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS ListUsername FROM mysql.user where User='$user';"
                                                               #一键创建数据库,用户
                                                               #创建数据库eisc写入字符编码utf8校验字符编码utf8_bin
                                                               #需要先在本地grantall创建用户,然后再创建远程用,否则出错。
                                                               #查看数据库,从mysql中的user表选择user,host列的信息查看指定用户列表
                                                               #mysqlCONCAT()函数用于将多个字符串连接成一个字符串
user="eisc";database="eisc";passwd="eisc.cn"   ; mysql -e "DROP user '$user'@'localhost'; DROP user '$user'@'%';  drop database $database;show databases;SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS ListUser FROM mysql.user where User='$user';"
                                                               #一键删除数据库,用户
 #  数据库导入导出
/usr/bin/zcat $createmysql | mysql -uzabbix -p123 zabbix
                                                                        # 导入数据库,登陆数据,用户名zabbix 密码123,并且进入数据库zabbix
                                                                        # zcat 查看压缩包的文件,管道到登陆数据库里面去执行
mysql -uzabbix -pxxx zabbix < abc.sql           # 导入数据库
/usr/local/mysql/bin/mysqldump -uroot -pxxx zabbix > abc.sql
                                                                        # 导出数据库
                                                                        #  --tables 表1 表2 只导出表一表2
2、只导出表结构
mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/mysqldump -uroot -p -d abc > abc.sql
3.导出指定表的数据
mysqldump -t 数据库名 -u用户名 -p密码 --tables 表1 表2 >/home/
4.导出指定表的结构
mysqldump -d 数据库名 -u用户名 -p密码 --tables 表1 表2 >/home/
5.导出表的数据及结构
mysqldump  数据库 -u用户名 -p密码 --tables 表1 表2 >/home/
6.若数据中,某些表除外,其余表都需导出
mysqldump -h IP -u 用户名 -p密码 --default-character-set=utf8 数据库名 --ignore-table=库名.表名1
--ignore-table=库名.表名2 >/home/
 #  禁止、允许MySQL root用户远程访问权限
mysql -e "show databases; select user,host from mysql.user;use mysql ; select * from user where user='root' and host='localhost'\G ; show grants for root@localhost; "
# 查询数据库,选择用户字段查询mysql表,在user表查询root用户在系统表中的数据,查询root用户权限
# 权限存储在mysql库的user, db, tables_priv, columns_priv, and procs_priv这几个系统表中,待MySQL实例启动后就加载到内存中
#------------------  权限说明 ------------#
2. MySQL 权限详解
All/All Privileges权限代表全局或者全数据库对象级别的所有权限
Alter权限代表允许修改表结构的权限,但必须要求有create和insert权限配合。如果是rename表名,则要求有alter和drop原表, create和insert新表的权限
Alter routine权限代表允许修改或者删除存储过程、函数的权限
Create权限代表允许创建新的数据库和表的权限
Create routine权限代表允许创建存储过程、函数的权限
Create tablespace权限代表允许创建、修改、删除表空间和日志组的权限
Create temporary tables权限代表允许创建临时表的权限
Create user权限代表允许创建、修改、删除、重命名user的权限
Create view权限代表允许创建视图的权限
Delete权限代表允许删除行数据的权限
Drop权限代表允许删除数据库、表、视图的权限,包括truncate table命令
Event权限代表允许查询,创建,修改,删除MySQL事件
Execute权限代表允许执行存储过程和函数的权限
File权限代表允许在MySQL可以访问的目录进行读写磁盘文件操作,可使用的命令包括load data infile,select … into outfile,load file()函数
Grant option权限代表是否允许此用户授权或者收回给其他用户你给予的权限,重新付给管理员的时候需要加上这个权限
Index权限代表是否允许创建和删除索引
Insert权限代表是否允许在表里插入数据,同时在执行analyze table,optimize table,repair table语句的时候也需要insert权限
Lock权限代表允许对拥有select权限的表进行锁定,以防止其他链接对此表的读或写
Process权限代表允许查看MySQL中的进程信息,比如执行show processlist, mysqladmin processlist, show engine等命令
Reference权限是在5.7.6版本之后引入,代表是否允许创建外键
Reload权限代表允许执行flush命令,指明重新加载权限表到系统内存中,refresh命令代表关闭和重新开启日志文件并刷新所有的表
Replication client权限代表允许执行show master status,show slave status,show binary logs命令
Replication slave权限代表允许slave主机通过此用户连接master以便建立主从复制关系
Select权限代表允许从表中查看数据,某些不查询表数据的select执行则不需要此权限,如Select 1+1, Select PI()+2;而且select权限在执行update/delete语句中含有where条件的情况下也是需要的
Show databases权限代表通过执行show databases命令查看所有的数据库名
Show view权限代表通过执行show create view命令查看视图创建的语句
Shutdown权限代表允许关闭数据库实例,执行语句包括mysqladmin shutdown
Super权限代表允许执行一系列数据库管理命令,包括kill强制关闭某个连接命令, change master to创建复制关系命令,以及create/alter/drop server等命令
Trigger权限代表允许创建,删除,执行,显示触发器的权限
Update权限代表允许修改表中的数据的权限
Usage权限是创建一个用户之后的默认权限,其本身代表连接登录权限