专栏首页dotnet & javacentos通过yum安装mysql

centos通过yum安装mysql

前言

前天按照Oracle上的文档装了一遍mysql,选了最新8.0的版本,后来出现一些问题,网上搜答案,出来的基本还是5.x版本的解决方案,并不适用8.0版本。然后我就去看了一下公司的正式环境买的阿里云rds版本,5.7。既然如此,重新装一下5.7保持和正式环境一致是必须的了。但,我突然就有点好奇,为什么当时没有装6.0 或者7.0版本,毕竟跨了2个大版本。更奇怪的是,看了一下mysql的官方文档的版本列表,发现也没有6.0 or 7.0的文档。

这下就好玩了,为什么没有6.x,7.x。

网上搜了一下。

大意就是,6因为一些性能问题一下子没起来。然后Oracle收购了Sun,停止的6的开发,然后7相关的功能统一合并到了8里面去。所以,8就成了最新的重要版本。

言归正传

文档地址,注意是5.7版本。


安装部分

可以分为以下几步:

  • 卸载之前的
  • 安装新的
  • 启动服务
  1. 卸载之前的版本。yum erase mysql
  1. 选y,完成
  1. 完成之后检查一下 /etc/my.cnf/etc/mysql如果还是存在,需要手动删除。发现多了一个my.cnf.rpmsave,rpm帮忙保存的,我们这里也不需要,可以直接删除。
  2. libaio是mysql的一个依赖项,可以先装一下(不过上次安装8.0的时候没有装,应该会自动装的)。 libnuma是mysql中NUMA功能的一个依赖项,也一起先手动装一下算了。 yum install libaio yum install libnuma
  3. 通过地址根据自己的系统,选择自己需要的版本,我系统是centos7.5,所以选el7。 通过wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm下载到服务器上,保存地址随意。虽然名字是mysql80,这个只是表示默认启用的是8.0版本,里面其实包含好几个版本,后面可以配置启用的具体版本。
  4. sudo yum localinstall mysql80-community-release-el7-1.noarch.rpm先安装rpm配置。
  5. yum repolist enabled | grep "mysql.*-community.*"看下是否已经添加成功。
  1. 出来的还是8.0的版本,下面配置一下禁用8.0,启用5.7。 sudo yum-config-manager --disable mysql80-community sudo yum-config-manager --enable mysql57-community
  2. 再看一下yum启用的版本情况. yum repolist enabled | grep "mysql.*-community.*"
  1. 然后就可以安装了。 sudo yum install mysql-community-server,报了一个错。需要5.7版本的common,安装的确是8.0版本的common。
  1. 上面的问题应该有两种选择
    1. 删除安装的8.0的common
    2. 使用提示的--skip-broken参数配置来解决
  2. 先试一下第一种。yum erase mysql-community-common删除完成。重新尝试安装。sudo yum install mysql-community-server。没有报错,按y继续安装。done。
  3. 启动服务。centos7推荐使用systemctl start mysqld.service。哈哈,失败了~~
  1. 如果是全新安装应该是不会有问题的,根据提示看下错误情况。
  1. 根据提示去搜一下原因。搜了一下,是由于原先装过8.0,然后创建了数据导致的,这里直接删掉就可以了。然后启动服务,没有报错。
  1. 看一下服务状态sudo systemctl status mysqld.service,running。

设置部分

分为以下几个部分:

  • 设置root用户密码
  • 创建用户,设置密码,分配权限。
  • 配置远程连接。
  1. mysql 服务第一次启动,会自动做以下几件事情.
    1. 启动服务。
    2. 在数据目录(/var/lib/mysql)生成ssl证书和秘钥文件
    3. 安装并启用validate_password插件。这个插件默认启用,他要求密码至少8位,并且要求有一个大写,一个小写,一个数字,以及一个特殊字符。
    4. 创建了'root'@'localhost'这个用户,密码存到/var/log/mysqld.log中。
  2. 查看一下密码。sudo grep 'temporary password' /var/log/mysqld.log
  1. 通过临时密码登录,然后修改临时密码。mysql -u root -p
  1. 修改成功。用新密码登录然后试试语句是否可以执行。没有问题。
  1. 登录mysql然后创建一个用户用于远程登录。CREATE USER 'root1'@'%' IDENTIFIED WITH mysql_native_password BY 'xxxxxxxxxx'; 。%表示任意地址可以连接。xxx是具体的密码,要符合上面的密码规则。密码的验证方式是mysql_native_password。
  1. 下面分配权限.grant all privileges on *.* to 'root1'@'%'把所有权限分配给root1用户。第一个星号表示数据库名。所以一般来说可以先用root创建一个数据库,然后把这个库的所有权限分配给用户root1.分配了之后要刷新一下权限配置。FLUSH PRIVILEGES
  1. 创建好之后,mysql默认用的3306端口,所以要开启一下服务器的3306端口防火墙。firewall-cmd --zone=public --add-port=3306/tcp --permanent,如果提示FirewallD is not running表示防火墙服务器没有启动,可以按需要启用与否。然后需要重新加载一下防火墙配置。firewall-cmd --reload
  2. 本地端口启用之后,需要设置阿里云的安全组规则。
  1. 然后试试是不是可以远程连上,这里用dbeaver,跨平台,安利一下~
  1. 连接上试试查询,建表之类的操作,成功。

大功告成。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 通过yum在centos安装mysql并配置远程登录

    前天按照Oracle上的文档装了一遍mysql,选了最新8.0的版本,后来出现一些问题,网上搜答案,出来的基本还是5.x版本的解决方案,并不适用8.0版本。然后...

    _淡定_
  • jquery调用javascript方法

    本来想找个“优雅”一点的方法,类似C#在调用C++方法时候的Invoke之类的。没找到,后来想想,其实也没必要,直接写就好了,算最优雅了吧。只是少了VS的Int...

    _淡定_
  • WCF 入门(29)

    最近工作比较忙,加了会班就不想再写东西了,就想洗洗睡。 但是这个视频真的不能断,不能像过去一样写了几集就停了。

    _淡定_
  • 通过yum在centos安装mysql并配置远程登录

    前天按照Oracle上的文档装了一遍mysql,选了最新8.0的版本,后来出现一些问题,网上搜答案,出来的基本还是5.x版本的解决方案,并不适用8.0版本。然后...

    _淡定_
  • python 2.6.6安装MySQL-

    [root@localhost opt]#wget http://pypi.python.org/packages/source/s/setuptools/se...

    py3study
  • centos7安装mysql

    我是攻城师
  • mysql 命令小集锦

    1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2:创建一个数据库MYSQLDATA mysql> CRE...

    赵腰静
  • MySql常用命令总结

    1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2:2、创建一个数据库MYSQLDATA mysql> C...

    叫我可儿呀
  • mysql 语法集锦

    使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 创建一个数据库MYSQLDATA mysql> CREATE...

    赵腰静
  • kubernetes系列之ConfigMap使用方式

    如启用一个mysql容器,mysql容器重要的文件有两部分,一部分为存储数据文件,一部分为配置文件my.cnf,存储数据可以用持久存储实现和容器的分离解耦,配置...

    程序员同行者

扫码关注云+社区

领取腾讯云代金券