当前位置:网站首页>window navicat连接阿里云服务器mysql步骤及常见问题

window navicat连接阿里云服务器mysql步骤及常见问题

2022-07-05 06:57:00 Silence丶你的名字

先登录自己的阿里云服务器

 

 

 

 这有两个比较重要的,一个是配置出口端口,

还有一个就是拿到自己的公网ip 连接上服务器

我用的是finalshell 工具连接。

主要是基于docker安装mysql ,现在我的服务器docker已经安装了,安装也很简单。网上有很多详细的步骤,跑一遍就好了

Docker中配置安装MySQL_tuziailuobo_lee的博客-CSDN博客_docker安装mysql配置时间:2022-04-13作者:tuziailuobo简介:在Docker中安装MySQL并进行配置,将数据挂载到本地Docker中配置安装MySQL说明:默认已经安装好docker,环境是阿里云ubuntu20,阿里云安全组开放3306端口.1、下载MySQL镜像docker pull mysql:5.72、创建MySQL容器的同时挂载数据docker run -d --restart=always --name mysql02 -p 3306:3306 -v /home/mysql.https://blog.csdn.net/qq_40716436/article/details/124149033?ops_request_misc=&request_id=&biz_id=102&utm_term=docker%E5%AE%89%E8%A3%85mysql&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-5-124149033.142^v30^pc_rank_34,185^v2^control&spm=1018.2226.3001.4187

 

我自己也水了一篇。不过这都不重要 ,重要的是安装后有几个注意点

查看镜像

docker images

不过看不看也没什么关系发,反正会自动拉取的

查看容器

docker ps

 

 

跟着命令跑一遍,然后查看mysql是否成功运行。如果mysql成功运行了。使用navicat连接

 

好了,水了一半。  navicat 连接这里有几个常见的报错

2005 - Unknown MySQL server host '45.130.63.101' (11001) "

这个报错应该是服务器ip不对

2003 - Can't connect to MySQL server on '47.100.68.107' (10060 "Unknown error")

可能是端口没有打开

记得把服务器端口打开。这个端口不一定是3306 。取决于你启动docker容器的时候。映射的端口

不过一半都是3306 

 

 1045 - Access denied for user 'root'@'117.147.47.90' (using password: YES).

 端口打开后,换了一个报错了。ip我都懒得影藏了。 这个端口就比较笼统了。可能是账号密码不对。也可能是账号没有允许远程访问。

#更新,  或者安装yum
        yum -y update

        #清除系统残余项如果服务器之前没有装过Docker,可以直接跳过
        yum remove docker \
        docker-client \
        docker-client-latest \
        docker-common \
        docker-latest \
        docker-latest-logrotate \
        docker-logrotate \
        docker-selinux \
        docker-engine-selinux \
        docker-engine

        #需要的安装包
        yum install -y yum-utils

        #设置镜像的仓库
        yum-config-manager \
        --add-repo \
        https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

        #更新yum软件包索引
        yum makecache fast

        #安装docker相关的 docker-ce 社区版 而ee是企业版
        yum install docker-ce docker-ce-cli containerd.io

        启动docker
        systemctl start docker

        #测试
        docker run hello-world
        12345678910111213141516171819202122232425262728293031323334353637
        #8.查看已经下载的镜像(从这里可以查看已有镜像的id)
        [[email protected] ~]# docker images
        REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
        hello-world           latest              bf756fb1ae65        4 months ago      13.3kB

        #创建并进入相关容器
        mkdir ~/mysql
        cd ~/mysql

        #配置阿里云镜像加速
        http://oss.console.aliyun.com
        控制台搜索容器镜像服务。 镜像加速器,选择自己对应的linux版本使用。每个人的不一样

        # docker 中下载 mysql
        docker pull mysql

        #启动
        docker run -id \
        -p 3306:3306 \
        --name=mysql \
        -v $PWD/conf:/etc/mysql/conf.d \
        -v $PWD/logs:/logs \
        -v $PWD/data:/var/lib/mysql \
        -e MYSQL_ROOT_PASSWORD=a123..a \
        -d mysql

        #进入容器
        docker exec -it mysql bash

        #登录mysql
        mysql -u root -p

        #修改root用户密码
        ALTER USER 'root'@'localhost' IDENTIFIED BY 'a123..a';

        #添加远程登录用户------- 8.0之后的----------------
        #user_name:要创建用户的名字
        #host:表示要这个新创建的用户允许从哪台机登陆,如果只允许从本机登陆,则 填 ‘localhost’ ,如果允许从远程登陆,则填 ‘%’
        #password:新创建用户的登陆数据库密码,如果没密码可以不写。
        CREATE USER 'silence'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
        #privileges:表示要授予什么权力,例如可以有 select , insert ,delete,update等,如果要授予全部权力,则填 ALL
        #databasename.tablename:表示用户的权限能用在哪个库的哪个表中,如果想要用户的权限很作用于所有的数据库所有的表,则填 *.*,*是一个通配符,表示全部
        #’username‘@‘host’:表示授权给哪个用户。
        GRANT ALL PRIVILEGES ON *.* TO 'silence'@'%';

        #添加远程登录用户------- 8.0之前的
        #第一个root表示用户名,%表示所有的电脑都可以连接,也可以设置某个ip地址运行连接,第二个root表示密码
        GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

        #刷新MySQL的系统权限相关表
        flush privileges;


        #查看所有用户(用户名、给谁授权)
        SELECT user,host FROM mysql.user;

docker exec  mysql01 bash

先进入一下容器。记得更换为自己容器的名字。创建容器的时候指定的

 登录mysql

 Welcome to the MySQL monitor. 看到这个就证明账号密码,没问题。如果navicat 是用的这个账号密码登录的,还是出现1045 。那就是账号授权的问题。

#添加远程登录用户------- 8.0之前的
#第一个root表示用户名,%表示所有的电脑都可以连接,也可以设置某个ip地址运行连接,第二个root表示密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

#刷新MySQL的系统权限相关表
flush privileges;


#查看所有用户(用户名、给谁授权)
SELECT user,host FROM mysql.user;

我之前是给root账户授权的,但是好像还是1045 。不行

 SELECT user,host FROM mysql.user;

有可能是我没搞好的原因。后来我又创建了一个用户silence 。可以成功访问。

我再创建一个账户吧。

吧唧吧唧一大堆,其实就是创建用户,授权远程访问。我这里的用户名是silence1

CREATE USER 'silence1'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

 GRANT ALL PRIVILEGES ON *.* TO 'silence1'@'%';

 

 

好了。连接成了

原网站

版权声明
本文为[Silence丶你的名字]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_42553504/article/details/125579700