标签:命令 work 压缩 测试 oracle 安全设置 框架 ip地址 master
今天弄了下mysql的几个安全设置: 只允许本地登录,允许ssh通过远程登录
1.my.cnf
#skip-networking
bind-address = 127.0.0.1
此项设置允许 tcp/ip 访问,但是只有127.0.0.1 有可以访问,如果把skip-networking 开启。则只能通过sock连接。
顺便提下,
mysql -h localhost -u eric -p saker
mysql -h 127.0.0.1 -u eric -p saker
这两个命令在skip-networking 开启的时候localhost能正常登录mysql,但是127.0.0.1不能。具体原因如下:
大多数程序将主机名localhost和IP地址127.0.0.1 视作“本地服务器”的同义词。
但在UNIX系统中,MySQL 有所不同:
出现localhost时,MySQL会尝试使用一个Unix domain socket 文件来连接本地服务器。
要强制使用TCP/IP连接到本地服务器,那就使用IP地址 127.0.0.1 而不是主机名localhost。
可以通过指定 --protocol=tcp 选项来强制使用TCP/IP进行连接
TCP/IP 连接的默认端口号是 3306.
2.mysql 设置好了,只允许本地登录。但是允许通过ssh远程登录
原理:无论是windows还是 linux,第一步就是本地与mysql服务器建立一个ssl tunnel,
利用ssh命令在本机开个33xx的端口,这个端口为隧道的入口端口,出口就是数据库的3306(如果默认端口没被修改的话),
linux如下:
ssh -NCPf root@localaddress -L 3388:mysqlserver:3306
参数解释
-C 使用压缩功能,是可选的,加快速度。
-P 用一个非特权端口进行出去的连接。
-f 一旦SSH完成认证并建立port forwarding,则转入后台运行。
-N 不执行远程命令。该参数在只打开转发端口时很有用(V2版本SSH支持)
1)如果是windows 下用navicat for mysql 之类的数据库管理软件,比较简单,
在"常规"选项卡填写主机名为localhost或127.0.0.1,远程数据库的账号和密码
"SSH"选项卡填写远程服务器的主机名和ssh端口号,及登录的用户和密码,测试连接是否成功
2)windows 暂时没找出类似
ssh -NCPf root@localaddress -L 3388:mysqlserver:3306
命令安静模式下建立ssh tunnel。 我用了putty试了下。连接可以成功。呆后续研究
3.mysql 主从备份使用ssh tunnel,下面摘自别人文章,待验证
- 1). 备份初始数据。
- 关闭所有相关的数据更新操作程序,或者对要备份的数据库加锁,避免更新,然后用 tar 备份到从服务器上。或者可以用mysqlhotcopy。
- 2). 需要在主服务器上,配置日志功能
- 这需要重启服务,使其启用日志功能。配置文件 my.cnf 可以放在 mysql 的安装目录中。
[mysqld]
server-id=1
log-bin=mydb-bin
binlog-do-db=mydb
重启服务后,可以在数据目录下,看见该数据库的日志文件,并且可以通过 "show master status",查看到主服务器的状态。 - 3). 设置备用用户
-
mysql>GRANT REPLICATION SLAVE ON *.* TO backup@‘localhost‘ IDENTIFIED BY ‘backup‘;
这里之所以用本地连接,是因为后面采用 ssh 隧道连接 mysql - 4). 设置从服务器
-
[mysqld]
server-id=2
master-host=127.0.0.1
master-port=3307
master-user=backup
master-password=backup
master-connect-retry=10
report-host=127.0.0.1
- 5). 远程连接隧道
-
ssh -f -N -4 -L 3307:127.0.0.1:3306 mysqlm@remotemysql
- 6). 启动从服务器
- 可以通过 "show processlist",查看备份情况。并且可以查看mysql的错误日志,了解是否连接正常,同步备份功能是否工作正常。
4.因为使用yii框架在写一个项目,所以远程mysql禁止直接登录后,yii的配置文件也要相应修改,linux下比较简单,可参看以下
http://www.yiiframework.com/forum/index.php/topic/30678-mysql-through-ssh-tunnel/
windows待续......
敲命令验证:
$ mysql -uroot -h127.0.0.1 -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.5.47-log MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
MySQL [(none)]> quit
Bye
24975@DESKTOP-I4OIMJC ~
$ mysql -uroot -hlocalhost -p
Enter password:
ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/run/mysql.sock‘ (2)
24975@DESKTOP-I4OIMJC ~
$ mysql --protocol=tcp -uroot -hlocalhost -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.5.47-log MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
MySQL [(none)]> quit
Bye
24975@DESKTOP-I4OIMJC ~
$ mysql --protocol=tcp -uroot -hlocalhost -p‘******‘
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 5.5.47-log MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
MySQL [(none)]>
mysql连接方式二
标签:命令 work 压缩 测试 oracle 安全设置 框架 ip地址 master
原文地址:https://www.cnblogs.com/hnhycnlc888/p/13034695.html