阿里云安装连接mysql数据库

一、CentOS7使用yum安装MySQL8.0

1、yum仓库下载MySQL:

sudo yum localinstall https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm

2、yum安装MySQL:

yum install mysql mysql-server mysql-devel -y

3、启动MySQL服务:

sudo service mysqld start

4、检查MySQL服务状态:

sudo service mysqld status

5、查看初始密码(如无内容直接跳过):

sudo grep 'temporary password' /var/log/mysqld.log

6、本地MySQL客户端登录:

mysql -u root -p

7、输入密码为第5步查出的,如果没有,直接回车,

然后就报了这个错:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

解决方法:

先按照提示找/var/lib/mysql/mysql.sock发现没这个文件,然后又去找mysql.sock

再输入:

alter user 'root'@'localhost' identified by '123456'; #设置密码为123456

报了这个错误(这个错误是说你的设置的密码太简单了,不安全,你重新设置下密码就可以了)

ERROR 1819 (HY000):Your password does not satisfy the current policy requirements

如果你偏要设置就再输入:

set global validate_password.policy=0;

mysql数据库5.7和8.0由于全局变量名字改了所以运行的命令不同,但是本质一样。

  • 5.7是:set global validate_password_policy=0;
  • 8.0是:set global validate_password.policy=0;

再输入:(如果说还显示错误那就把密码设置复杂点,加点字母什么的)

alter user 'root'@'localhost' identified by '123456';  #设置密码为123456

输入quit退出mysql

再输入:

mysql -u root -p

输入刚刚设置好的密码,就可以成功登录了


二、navicat连接阿里云数据库

打开navicat选择阿里云连接

在这里插入图片描述
选择–>高级,把编码改为utf-8,防止乱码
在这里插入图片描述

选择–>SSH–>点击–>使用SSH隧道

在这里插入图片描述

连接成功

在这里插入图片描述

测试成功后会显示

在这里插入图片描述

测试成功后点确定就ok了

在这里插入图片描述
这时候你就可以直接通过navicat操作服务器上的数据库了。


三、数据库授权(授权用户登录)

目的:你上传的项目工程要连接数据库,如果没授权可能会出现数据库不能连接的错误,因为你项目是连接服务器上的数据库,服务器上的数据库没有授权用户IP权限。

出现错误的解决方法:

message from server: "Host is not allowed to connect to this MySQL server

先查看数据库

show databases;

use mysql;

select host,user from user;

+-------------------------+------+
| host                    | user |
+-------------------------+------+
| 127.0.0.1               | root |
| iz2ze3hkpeilimy9kn68tvz |      |
| iz2ze3hkpeilimy9kn68tvz | root |
| localhost               |      |
| localhost               | root |
+-------------------------+------+

5 rows in set (0.00 sec)

两种方法改权限

改表法

#直接用更新语句
update user set host = '%' where user = 'root';

select host, user from user;

+-------------------------+------+
| host                    | user |
+-------------------------+------+
| %                       | root |
| 127.0.0.1               | root |
| iz2ze3hkpeilimy9kn68tvz |      |
| iz2ze3hkpeilimy9kn68tvz | root |
| localhost               |      |
| localhost               | root |
+-------------------------+------+

6 rows in set (0.00 sec)

#成功后,需要刷新表
FLUSH PRIVILEGES

授权法

#例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

#刷新表
FLUSH PRIVILEGES

#如果出错,那就再执行一次
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

select host, user from user;

+-------------------------+------+
| host                    | user |
+-------------------------+------+
| %                       | root |
| 127.0.0.1               | root |
| iz2ze3hkpeilimy9kn68tvz |      |
| iz2ze3hkpeilimy9kn68tvz | root |
| localhost               |      |
| localhost               | root |
+-------------------------+------+

6 rows in set (0.00 sec)

#刷新表,记得刷新,不然没有效果
FLUSH PRIVILEGES

授权法其他应用


#如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

FLUSH PRIVILEGES

#如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

FLUSH PRIVILEGES
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
连接阿里云MySQL数据库需要进行以下步骤: 1. 安装pymysql和sshtunnel模块 ```python pip install pymysql pip install sshtunnel ``` 2. 导入模块 ```python import pymysql from sshtunnel import SSHTunnelForwarder ``` 3. 配置SSH隧道 ```python ssh_host = 'xxx.xxx.xxx.xxx' # 云服务器的IP地址 ssh_port = 22 # 云服务器的SSH端口 ssh_user = 'root' # 云服务器的SSH用户名 ssh_password = 'xxxxxx' # 云服务器的SSH密码 with SSHTunnelForwarder( (ssh_host, ssh_port), # 云服务器的SSH地址和端口 ssh_username=ssh_user, ssh_password=ssh_password, remote_bind_address=('localhost', 3306) # MySQL服务器的地址和端口 ) as tunnel: ``` 4. 配置MySQL连接 ```python db_host = 'localhost' # 本地地址 db_port = tunnel.local_bind_port # 映射的端口 db_user = 'root' # MySQL用户名 db_password = 'xxxxxx' # MySQL密码 db_name = 'test' # 数据库名称 conn = pymysql.connect( host=db_host, port=db_port, user=db_user, password=db_password, database=db_name, charset='utf8mb4' ) cursor = conn.cursor() # 使用 cursor 进行数据库操作 # ... cursor.close() conn.close() ``` 5. 完整代码示例 ```python import pymysql from sshtunnel import SSHTunnelForwarder ssh_host = 'xxx.xxx.xxx.xxx' # 云服务器的IP地址 ssh_port = 22 # 云服务器的SSH端口 ssh_user = 'root' # 云服务器的SSH用户名 ssh_password = 'xxxxxx' # 云服务器的SSH密码 with SSHTunnelForwarder( (ssh_host, ssh_port), # 云服务器的SSH地址和端口 ssh_username=ssh_user, ssh_password=ssh_password, remote_bind_address=('localhost', 3306) # MySQL服务器的地址和端口 ) as tunnel: db_host = 'localhost' # 本地地址 db_port = tunnel.local_bind_port # 映射的端口 db_user = 'root' # MySQL用户名 db_password = 'xxxxxx' # MySQL密码 db_name = 'test' # 数据库名称 conn = pymysql.connect( host=db_host, port=db_port, user=db_user, password=db_password, database=db_name, charset='utf8mb4' ) cursor = conn.cursor() # 使用 cursor 进行数据库操作 # ... cursor.close() conn.close() ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KASAKI11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值