数据存储 | MySQL—— pymysql连接远程mysql提示pymysql.err.OperationalError: (2003, “Can‘t connect to My问题的解决
1.环境说明[客户端] windows 10 / PyCharm/ Python 3.7[服务端] ubuntu/ mysql2.问题说明[问题描述]pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on '192.168.x.x' ([WinError 10061] 由于目标计算机积极拒绝,无法连接。)")[原
·
目录
1.环境说明
[客户端] windows 10 / PyCharm/ Python 3.7
[服务端] ubuntu/ mysql
2.问题说明
[问题描述] pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on '192.168.x.x' ([WinError 10061] 由于目标计算机积极拒绝,无法连接。)")
[原因分析]
- 1.mysql中用户权限不足
- 2.mysql远程连接配置存在问题
2.1.用户权限设置
-- 1.打开mysql mysql -u root -p [root用户密码] -- 若上述操作提示:ERROR 1698 (28000): Access denied for user 'root'@'localhost',则使用如下文件中对应用户及对应密码 sudo cat /etc/mysql/debian.cnf -- # Automatically generated for Debian scripts. DO NOT TOUCH! -- [client] -- host = localhost -- user = debian-sys-maint -- password = kZoAJ9PoqLoqfOJ9 -- socket = /var/run/mysqld/mysqld.sock mysql -u debian-sys-maint -p kZoAJ9PoqLoqfOJ9 -- 2.切换到mysql数据库,并查看user表中的用户信息 use mysql; select host,user from user; -- 3.新创建一个具有全部权限且host='%'的用户用于远程连接 sudo create user 'username'@'%'; sudo passwd 'username'; -- 设置用户登录密码 grant all privileges on *.* to 'username'@'%'; -- 再执行以下步骤2中的操作,查看用户'username'的host是否为'%',如果是,则支持远程连接 -- 4.设置完毕(刷新权限),测试远程连接是否成功 flush privileges;
2.2.mysql远程连接设置
若上述操作仍然不能正常连接,则进行如下操作:
-- 1.修改/etc/mysql/mysql.conf.d/mysqld.cnf文件中的默认绑定ip sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf -- 41行中的本地连接地址修改为mysql所在远端服务器的地址即可 -- 39 # Instead of skip-networking the default is now to listen only on -- 40 # localhost which is more compatible and is not less secure. -- 41 bind-address = 192.168.x.x -- 2.重启mysql服务 sudo /etc/init.d/mysql restart -- 3.测试远程连接是否成功
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献21条内容
所有评论(0)