sql 授权给指定ip ,或者开放远程链接,mysql开放外网访问,设置端口|开启防火墙|mysql笔记

184 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

mysql> grant all privileges on *.* to 'liaosp'@'%' identified by 'liaosp123456' with grant option;

创建用户和添加用户权限
all privileges:表示将所有权限授予给用户。也可指定具体的权限,如:SELECT、CREATE、DROP等。

on:表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写“*”表示所有数据库,所有表。如果我要指定将权限应用到test库的user表中,可以这么写:test.user

to:将权限授予哪个用户。格式:”用户名”@”登录IP或域名”。%表示没有限制,在任何主机都可以登录。比
如:”liaosp”@”192.168.0.%”,表示liaosp这个用户只能在192.168.0IP段登录

identified by:指定用户的登录密码

with grant option:表示允许用户将自己的权限授权给其它用户

查看更多

mysql 忘记root 密码了 www.php.cn/blog/detail…
如何设置外网访问:blog.csdn.net/cxin917/art…
如何开启 3306端口,navicat 可以连接: www.cnblogs.com/lemon-flm/p…
关闭centos 防火墙 www.cnblogs.com/moxiaoan/p/…
centos 防火墙管理 点击进入

导出结构:
     mysqldump -hlocalhost -uroot -P3306 -p6NbAFQBE -d btmox>./btmox.sql
     mysqldump -hlocalhost -uroot -P3306 -p6NbAFQBE -d mxhy>./mxhy.sql
远程:
  mysqldump -h remote_IP_address  -u username -p -P3306 --default-character-set=utf8 --set-gtid-purged=OFF database_name >/Users/kalacloud/Desktop/data-dump.sql
远程参考:
   https://kalacloud.com/blog/how-to-import-and-export-databases-excel-csv-in-mysql-or-mariadb-from-terminal/
 导出结构和数据:
     mysqldump -hlocalhost -uroot -P3306 -p6NbAFQBE  btmox>./btmox-data.sql
     mysqldump -hlocalhost -uroot -P3306 -p6NbAFQBE -d mxhy>./mxhy-data.sql
 导入sql文件:
     mysql -uroot  -P3306 -p6NbAFQBE  btmox< ./btmox-data.sql
     mysql -uroot  -P3306 -p6NbAFQBE  mxhy< ./mxhy-data.sql
     
 导入sql 8+ docker版本,好像这样无效,可以参考以下;
     docker cp mydata_mytable.sql mysql:/mydata_mytable.sql
     进入容器
     mysql> source mydata_mytable.sql

 授权:
 grant all privileges on *.* to 'root'@'%' identified by '6NbAFQBE';
 grant all privileges on *.* to 'dbmanager'@'%' identified by '6NbAFQBE';
 FLUSH PRIVILEGES;

mysqldump 导出排除部分表

mysqldump -uroot -p dbname --ignore-table=dbname.tbname --ignore-table=dbname.tbname2> D:\xxxx\xx.sql

数据库批量备份

declare -A arr
# 要备份的数据表,value值可设定备份参数
arr["hello"]="--ignore-table=fix_station.telescope_entries"
#保存数据库备份的目录 宿主机
path=/home/mysql/backups/
#容器名称
container_name=dnmp-do_mysql_1
#设置数据库信息
host=localhost
username=root
password=123456
#备份的天数
days=15
#定义文件
day=`date +%Y%m%d`
nowpath=$path$day

#删除今天备份的文件
rm -rf $nowpath

#创建今天的备份文件目录
if  [ ! -d "${nowpath}" ] ;then
mkdir -p ${nowpath};
fi ;

#执行数据库备份
for key in ${!arr[*]};do
    docker exec $container_name mysqldump -u$username -p$password ${arr[$key]}  $key > $nowpath/$key.sql
done

#删除旧的备份数据
old=`date -d "$days days ago" +%Y%m%d`

rm -rf $path$old