vultr服务器中安装mysql 8.0

版权声明:转载或者引用本文内容请注明来源及原作者 https://blog.csdn.net/sky_format/article/details/89053523

今天我想试试在自己买的vultr服务器中装一下mysql 8.0,踩了不少坑,特此写下来。

首先看一下我的服务器配置:

  • CPU:1 vCore
  • RAM:1024 MB
  • Storage:25 GB SSD
  • OS:CentOS 7 x64
    每月花费$5,综合性价算是比较高的,平时没事玩玩,因为站点在国外,科学上网什么的也不是事儿,反正对我来说够了,如果有钱可以选择选择更好的配置,它是按照用多少扣多少,不想使用就把你的实例删了,就不会扣费了。

开始之前,先介绍我遇到的坑:

  • mysql8 的密码强制设置
  • mysql8 的用户权限管理
  • mysql8 中有关mysql_install_db文件
  • centos7下没有iptables问题

正文(安装):

网上有许多关于linux下安装mysql8的教程,我大致看看一下,也尝试了一下,但都有需要用mysql_install_db初始化数据库,然而我在官网下载的安装包中并没有这个文件,甚至我用find命令都找不到,我想可能是官方将其删除,或者。。。我什么地方没做好??

下图为我最初选择的版本(黄色选中):
在这里插入图片描述
我换了几个版本(都是8以上),然鹅都没有mysql_install_db,这就难受了啊!

于是我换另一种方式,采用rpm的方式,简单是简单,但是好像把我不需要的组件也安装了,表示内存危机啊!我最后会给我参考的文档地址,大家可以看看。

  • 下载MySQL yum源(MySQL8.0.11)
    wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
  • 安装yum源
    yum localinstall mysql80-community-release-el7-1.noarch.rpm
  • 更新yum源
    yum clean all
    yum makecache
  • 创建Mysql账户
    groupadd mysql
    useradd -g mysql mysql
  • 开始安装MySQL
    yum install mysql-community-server
  • 启动MySQL
    systemctl start mysqld
  • 查看初始化密码
    cat /var/log/mysqld.log | grep password
  • 登录MySQL
    mysql -u root -p
  • 修改初始化密码(密码一定要大小写字母+数字+符号,如:Aa-123456789)
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'yourpassword';

密码的修改一定要遵从括号内的规则,否则不会通过,以后有关密码的设置、修改都要注意。
有关mysql8.0.11更改说明

好了,前面挺顺利,现在来到了一个坑------权限问题。
以下是错误描述:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘IDENTIFIED BY ‘root’ WITH GRANT OPTION’ at line 1.

好吧,你厉害!于是我跑到了Stack Overflow,果然有答案呐,瞬间高兴有没有!

  1. 创建新用户(注意密码格式):
     CREATE USER 'sou'@'%' IDENTIFIED WITH mysql_native_password BY 'yourpassword';

解释以下, ‘sou’@’%'中@前面表示用户名,后面代表主机名,我用%表示所有主机都可以访问,是为了的后面远程连接,当然你也可以写成localhost,但是后面如果想要以这个用户的身份进行远程登录,还是要改,所以说,何必呢。还有mysql_native_password这个关键词最后不要换成IDENTIFIED BY,由于mysql8的改变,有些客户端连接时可能不支持。。。

  1. 为新建的用户赋予权限:
    允许任何主机访问数据库
GRANT ALL PRIVILEGES ON *.* TO 'sou'@'%' WITH GRANT OPTION;
  1. 刷新权限列表:
FLUSH PRIVILEGES;
  1. 以新建用户的身份登录:
mysql -u '你的用户名' -p

很好,如果你用的是阿里云,加个安全组,估计就差不多了,但不排除意外情况。现在对于我来说就是远程连接,本以为很简单的事,却又是个坑,我想到可能也需要设置防火墙啥的,开放一下端口,vultr界面如下,待我设置了规则之后(其实就是把所有通道全打开,一劳永逸。。。。),发现好像它并没有向我想的那方面发展,并且Google 也登不了了,哦呼!看来自己太笨啊,如果大家知道怎么弄,可以评论一下,求大佬指教。

于是我按照网上的教程,查看了一下服务器内防火墙设置,我直接把它关了,结果就成了(偷懒的可以试试,直接关防火墙)!

看来果然是防火墙的设置问题,嗯。。。。

我看一下怎么修改防火墙的设置,然而找不到iptables。。。

怎么办,查呗!

  1. 关闭防火墙
systemctl stop firewalld
  1. 安装或者更新服务
yum install iptables-services 
  1. 启动iptables
systemctl enable iptables
  1. 打开iptables
systemctl start iptables

进行到第二步就有iptables文件了,这时需要修改一下里面的内容,具体内容可以参考下面的链接。文章内容有不恰当或者有什么建议,请提出。

至此,大功告成!

附:
CentOS(linux) 下MySQL8.0.11的安装
如何在MySQL 8.0中为root用户授予所有权限
关于centos7下/etc/sysconfig/目录没有iptables问题
iptables配置文件

猜你喜欢

转载自blog.csdn.net/sky_format/article/details/89053523
今日推荐