在CentOS上安装mysql数据库并开启远程访问

安装方式1:

(centos7没有mysql 的yum源,只能先下载mysql的repo源,此外再安装mysql数据库时会自动的覆盖掉本地的MariaDB数据库,这两个数据库的操作类似--)

    执行命令--- wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

    从网上下载这个rpm包(这里wget 命令是从网络上下载文件的命令一般的格式为wget +url),下载好rpm包后安装这个包

      执行命令--- rpm -ivh mysql-community-release-el7-5.noarch.rpm

    再安装mysql-server

    执行命令--- sudo yum install mysql-server

之后就是一段时间的等待...

安装方式2:

下载并安装MySQL官方的 Yum Repository

在 MySQl 的官网上找到 Yum Repository 的下载链接。

然后执行如下命令:

wget -i -c https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm​

下载Yum Repository,之后我们就可以使用 yum 来进行安装了

安装命令:

yum -y install mysql80-community-release-el7-1.noarch.rpm

yum -y install mysql-community-server​

之后也是一段时间的等待...

但此时还有一个问题,就是因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉:

yum -y remove mysql80-community-release-el7-1.noarch​

安装结束之后就可以使用mysql数据库

首先是重启mysql服务

        service mysqld restart

修改密码(在mysql中用户名密码都在数据库名为mysql的这个库):

        use mysql;

        update user set password=password('new password') where user='root';

        flush privileges;

开机启动

        shell> systemctl enablemysqld

        shell> systemctl daemon-reload

开启远程连接服务

MySQL默认是拒绝远程连接的,所以必须要修改一些参数:

grant all privileges on *.* to'root'@'%'identified by 'new password' with grant option;

对系统数据库的root账户设置远程访问的密码,与本地的root访问密码并不冲突

设置防火墙的3306端口

iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

测试

iptables -L -n


关闭远程访问

iptables -D INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT



在客户机上的使用:

客户机必须安装了mysql客户端,然后执行如下命令

mysql -h 服务端ip -u 服务器端提供的账户 -p

结果如下则证明成功访问,之后即可像操纵本地数据库一样了:

如果出现ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 45, found 43. Created with MySQL 5

是由于你曾经升级过数据库,升级完后没有使用

mysql_upgrade升级数据结构造成的。

解决办法:

使用mysql_upgrade命令

    mysql_upgrade -u root -p 密码

-------------------------------------------后续-------------------------------------------------



通过在客户机上使用cmd远程连接mysql数据库正常,但在插入数据时出现问题:


表结构

通过在客户机上使用cmd远程连接mysql数据库正常,但在插入数据时出现如下问题:

后来发现是cmd的默认编码不是utf8,在发送请求到服务器端的数据与域约束不匹配,无法写入出现错误,

解决办法:更改cmd的默认编码或者使用其他mysql客户端工具

这里只介绍cmd默认编码的修改:

1.临时修改,只作用于当前打开的窗口

  进入cmd窗口后,直接执行“chcp 65001”

  执行完后,cmd的编码格式就是UTF-8

2.永久修改,修改注册表。

在运行中输入"regedit",找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor

然后“右键-新建”,选择“字符串值”,“名称”列填写“autorun”, 数值数据填写“chcp65001”


添加成功后:


再次在运行中输入cmd,就会自动把编码格式设置为UTF-8


图形化工具推荐Navicat,地址如下:

    链接:https://pan.baidu.com/s/1nH0rUL53YWLN8N6KRPl87g 密码:mqb6

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容