标签: Navicat

  • MAC上连接Docker下的最新版Mysql

    由于最新版Mysql采用了新的加密方式(例如 Mysql8),所以远程连接需要设置Mysql的配置。以下方法在Navicat上链接成功。

    1. Mac上安装Docker和Mysql的Docker略去,见上一篇。

    2. 运行镜像,设置root账号初始密码(123456),映射本地宿主机端口3306到Docker端口3306。

    $ docker run -it –rm –name test_mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql

    3. 查看已运行的容器:

    $ docker ps -a

    4. 进入test_mysql容器:

    docker exec -it test_mysql bash

    5. 在容器内登陆Mysql

    mysql -uroot -p123456

    6. 查看root等用户信息

    mysql> select user,host,authentication_string from mysql.user;

    7. 为root分配权限,以便可以远程连接:

    mysql> grant all PRIVILEGES on *.* to root@‘%’ WITH GRANT OPTION;

    8. 使用Navicat链接会提示链接失败。因为Mysql5.6以上的版本修改了Password算法,这里需要更新密码算法,操作步骤如下:

    mysql> ALTER user ‘root’@‘%’ IDENTIFIED BY ‘123456’ PASSWORD EXPIRE NEVER;

    mysql> ALTER user ‘root’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;

    mysql> FLUSH PRIVILEGES;

    9. 再次使用Navicat链接,提示成功。

    10. 如果使用php链接

    $mysqli = new mysqli("mysql的docker的ip", "root", "123456");