MySQL 8 的ECS安装加初始配置

感觉自己装个mysql都好艰辛,搞完写个博客纪念一下
ECS版本:阿里云CentOS 6.9

一、下载和安装

分别下载server和client

wget https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql80-community-el6/mysql-community-server-8.0.15-1.el6.x86_64.rpm
wget https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql80-community-el6/mysql-community-client-8.0.15-1.el6.x86_64.rpm

确认已安装否

# 确认mysql是否已安装
yum list installed mysql*

卸载旧版本后再安装

# 卸载旧版本的MySQL
rpm -qa | grep mysql
rpm -e mysql-libs-5.1.66-2.el6_3.i686 --nodeps
# 安装
rpm -ivh mysql-community-server-8.0.15-1.el6.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.15-1.el6.x86_64.rpm --nodeps --force
# (-ivh :安装显示安装进度--install--verbose--hash)
# 配置文件:/etc/my.cnf
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

二、初始化

# 配置信息查看
cat /etc/my.cnf
# (注:windows下修改的是my.ini)

# 启动mysql服务操作四连
service mysqld restart
service mysqld start
service mysqld stop
service mysqld status


1、服务端启动报错

启动报错See “systemctl status mysqld.service”
在这里插入图片描述

  1. 暴力解决:卸载,删除所有mysql相关的配置文件
find / -name '*mysql*'
  1. 异常1——libaio 未安装

– Unit mysqld.service has begun starting up.
Mar 30 13:45:37 boyideyt mysqld[20983]: Initializing MySQL database: /usr/sbin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
Mar 30 13:45:37 boyideyt mysqld[20983]: [FAILED]
Mar 30 13:45:37 boyideyt systemd[1]: mysqld.service: control process exited, code=exited status=127
Mar 30 13:45:37 boyideyt systemd[1]: Failed to start SYSV: MySQL database server…

解决:
出现该问题首先检查该链接库文件有没有安装使用 命令进行核查

rpm -qa|grep libaio   

运行该命令后发现系统中无该链接库文件

使用命令,yum install libaio-devel.x86_64

  1. 异常2 找不到errmsg.sys

2019-03-30T06:52:28.371374Z 0 [ERROR] [MY-010338] [Server] Can’t find error-message file ‘/usr/share/mysql-8.0/errmsg.sys’. Check error-message file location and ‘lc-messages-dir’ configuration directive.

So I found where the error messages where:
find / -name errmsg.sys
find / -name errmsg.sys

Can’t read from messagefile ‘/usr/share/mysql-8.0/errmsg.sys’

解决:
在这里插入图片描述
4. 异常3

Unable to lock ./ibdata1 error: 11

解决:
ps aux |grep mysql*
杀死已有的mysql进程

2、修改初始密码

网上搜到的查看临时密码的方法

#查看临时密码
sudo grep 'temporary password' /var/log/mysqld.log

然而我的这个临时密码不知道为什么不管用,我就用了免密登录的方法,在/etc/my.cnf中加一行skip-grant-tables。加完一定要重启mysql服务。

# 进入mysql
shell> mysql -uroot -p

进去后可以查看一下密码

use mysql;
-- authentication_string: 用户密码;在mysql 5.7.9以后废弃了password字段和password()函数;
mysql> select host, user, authentication_string, plugin from user; 

字段信息:

  • host: 允许用户登录的ip‘位置’%表示可以远程;
  • user:当前数据库的用户名;
  • authentication_string: 用户密码;在mysql 5.7.9以后废弃了password字段和password()函数;
  • plugin: 密码加密方式;
    在这里插入图片描述
    看到当前root用户authentication_string字段下有内容,先将其设置为空;
use mysql;  
update user set authentication_string='' where user='root';  

root的authentication_string字段置为空后,退出去,把/etc/my.cnf中的skip-grant-tables去掉,重启mysql服务。

mysql -u root -p
passwrod:直接回车;

这会再进mysql,mysql会提醒你修改你的密码,使用ALTER USER “root”@“localhost” IDENTIFIED BY “你的新密码”;

--密码一定要复杂
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

至此修改成功; 新用户名密码记好。

三、远程连接

ECS的安全组加3306端口入规则,修改后用workbench连接报没有权限(mysql服务正在运行时)
报错信息1.登录MySQL

mysql -u root -p

输入您的密码

2.选择 mysql 数据库

use mysql;

因为 mysql 数据库中存储了用户信息的 user 表。

3.在 mysql 数据库的 user 表中查看当前 root 用户的相关信息

select host, user, authentication_string, plugin from user; 

执行完上面的命令后会显示一个表格

查看表格中 root 用户的 host,默认应该显示的 localhost,只支持本地访问,不允许远程访问。

4.授权 root 用户的所有权限并设置远程访问

mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'new_Password';
 
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'new_Password';

-- 设置为远程登录

mysql> GRANT ALL ON *.* TO 'root'@'%';

GRANT ALL ON 表示所有权限,% 表示通配所有 host,可以访问远程。

5.刷新权限

所有操作后,应执行

mysql> flush privileges;

6.查看 root 用户的 host

再次执行步骤 2,你会发现 root 用户的 host 已经变成 %,说明我们的修改已经成功,可以远程访问了。
在这里插入图片描述测试连接,成功。经过了一整个下午的折腾,我终于可以配置我的hive元数据了 (T T)
可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值