1、登录
mysql -u root -p
之后输入密码进行登录
2、权限设置及说明
2.1、添加远程ip访问权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.10.11.12' IDENTIFIED BY 'FEFJay' WITH GRANT OPTION;
flush privileges;
2.2、命令解释
第一行中,10.10.11.12 是阿里云内网的一个地址,这个是允许远程访问的IP的值。自行改为其他值。
root 是账户名,后面的 FEFJay 是密码。 即,允许来自 10.10.11.12 的连接并使用 root 账户和 FEFJay 这个密码进行访问。
ALL PRIVILEGES ON 后面的 *.* 表示所有数据库,即完全访问权限,可以指定为特定数据库。
而 IP 这里,可以使用 % 来表示所有 IP。
第二行是使设置立刻生效。
2.3、注意事项
记得开放服务器的 3306 端口
3、本质
以上所有操作,其实就是在 mysql 库的 user 表,添加了一条新的记录,相应的: Host=特定ip,User=允许登录的用户名,Password=密码 等等。
4、远程速度慢
当一个新的客户端连接到 mysqld 时,mysqld 会产生一个新的线程来处理这个请求。这个线程首先会检查主机名是否在缓存中存在,如果不存在,它将尝试解析这个主机名。
你可以通过添加–skip-name-resolve 参数启动 mysqld 来禁用 DNS 主机名查询。但是这将导致你在 MySQL 的授权表中只能使用 IP 数字。
如果你使用一个很慢的 DNS 和许多主机,你可以通过添加–skip-name-resolve 禁用域名查询或通过增加 HOST_CACHE_SIZE 定义的值(默认值: 128)并重新编译 mysqld 来提升性能。
你可以通过–skip-host-cache 参数禁用主机名缓存。要清空主机名缓存,可以执行一个 FLUSH HOSTS 语句或执行 mysqladmin 中的 flush-hosts 命令实现。
要完全禁用 ICP/IP 连接,请添加 –skip-networking 启动 mysqld。
my.cnf 里面添加
[mysqld]
skip-name-resolve
禁用 DNS 解析,这样连接速度正常的快很多了