阿里云centos安装mysql8

MySQL8.0安装与问题解决
本文详细记录了MySQL 8.0版本在Linux环境下从安装到运行过程中遇到的各种问题及解决方案,包括缺失libaio.so.1库、mysqld.service未找到、日志文件和socket权限问题、配置冲突等,以及如何修改root密码和设置远程访问。

之前搞过一次 不记得了 又重新搞了下 这次安装的是8版本 真的是踩了N多个坑 记录一下。

参考了这篇

安装了最新版mysql,遇到的问题

tar -xvf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz -C /usr/local/ 可以解压到指定目录
提示 libaio.so.1没有
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm
rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm

提示 Failed to start mysqld.service: Unit not found.

https://www.jianshu.com/p/20d9254469d1

 cp /usr/local/mysql-8.0.18/support-files/mysql.server /etc/init.d/mysql.server

如果还提示 直接./mysql.service start

可能遇到的问题

[root@iZwz95o13p92ztavqjkt16Z init.d]# service mysql.server start
Starting MySQL.2020-03-07T15:04:16.597520Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
The server quit without updating PID file (/data/mysql/mysq[FAILED]```
解决办法
[root@iZwz95o13p92ztavqjkt16Z init.d]# mkdir -p /var/log/mariadb
[root@iZwz95o13p92ztavqjkt16Z init.d]# chmod -R 777 /var/log/mariadb/

[root@iZwz95o13p92ztavqjkt16Z init.d]# service mysql.server start    
Starting MySQL.2020-03-07T15:05:49.563413Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
The server quit without updating PID file (/data/mysql/mysq[FAILED]
[root@iZwz95o13p92ztavqjkt16Z init.d]# chmod -R 777 /data/mysql/

查看日志文件'/var/log/mariadb/mariadb.log'发现没有手动创建了更改了可读可写权限
[root@iZwz95o13p92ztavqjkt16Z init.d]# service mysql.server start
Starting MySQL.2020-03-07T15:13:26.928132Z mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
The server quit without updating PID file (/data/mysql/mysq[FAILED]
 参考[此篇](https://blog.csdn.net/qq_32331073/article/details/76229420)
 
 /var/lib/mysql 这个在配置文件里面配的 
 vim /etc/my.cnf 里面可以查看到
 socket=/var/lib/mysql/mysql.sock
创建文件
[root@iZwz95o13p92ztavqjkt16Z init.d]# mkdir -p /var/lib/mysql
[root@iZwz95o13p92ztavqjkt16Z init.d]# chmod -R 777 /var/lib/mysql/

[root@iZwz95o13p92ztavqjkt16Z init.d]# service mysql.server start  
Starting MySQL.The server quit without updating PID file (/[FAILED]ql/mysql.pid).

修改了配置文件 my.cnf
注释掉了重复的配置
#datadir=/var/lib/mysql
#socket=/tmp/mysql.sock
猜测可能是配置冲突导致的

至此终于启动成了 本来以为可以早睡 2020年3月7日23:36:54

[root@iZwz95o13p92ztavqjkt16Z init.d]# service mysql.server start
Starting MySQL...                                          [  OK  ]

启动时如果提示命令找不到如下错误
[root@iZwz95o13p92ztavqjkt16Z bin]# pwd
/usr/local/mysql-8.0.18/bin
[root@iZwz95o13p92ztavqjkt16Z bin]# mysql -u root -p
-bash: mysql: command not found

解决办法 创建一个软连接 
ln -s /usr/local/mysql-8.0.18/bin/mysql /usr/bin/

又出现一个问题 
[root@iZwz95o13p92ztavqjkt16Z bin]# mysql -u root -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

参考[这篇](https://www.jb51.net/article/174244.htm)
需要配置
[client]
port=3306
socket=/var/lib/mysql/mysql.sock  与 mysqld 配置里保持一致 

修改root密码 参考[此篇](https://blog.csdn.net/vv19910825/article/details/82979563)


新的问题 

ERROR 1054 (42S22): Unknown column 'password' in 'field list'
参考https://www.cnblogs.com/mzxiaoze/p/10413399.html

https://blog.csdn.net/s78365126/article/details/85267154

错误的原因是 5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string
 
 正确的语句
alter user 'root'@'localhost' identified by 'newpassword';
密码修改成功后,执行  flush privileges;  

允许远程访问
mysql -uroot -p
use mysql;
//Mysql默认不允许远程登录,所以需要开启远程访问权限
select user,authentication_string,host from user;
update user set host = '%' where user = 'root';
FLUSH PRIVILEGES;
//navicat 连接 mysql 出现`Client does not support authentication protocol requested by server`
alter user 'root'@'%' identified with mysql_native_password by '密码';

总结一下
如果是自定义了配置文件如socket、basedir、datadir这种要注意不要冲突保留一个。启动的时候创建必要的软连接,创建[client]配置sock。修改root密码的时候有个技巧,配置文件里面加了跳过密码之后直接改会报错,先刷新一下权限。修改允许远程访问的时候不能用旧的那一套了。

终于是装好了 2020年3月8日00:33:18 睡觉~ 有空再研究下mycat


------------------2022-01-09 11:33:02---------
参考[https://www.cnblogs.com/tangqiu/p/12310888.html](https://www.cnblogs.com/tangqiu/p/12310888.html)

wget [https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm](https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm)

sudo yum localinstall [https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm](https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm)

yum install mysql-community-server

提示缓存不足时 

yum-config-manager --save --setopt=docker-ce-stable.skip_if_unavailable=true

如果报错
2003 - Can't connect to MySQL server on '120.25.214.68' (61 "Connection refused")
关掉防火墙,或者放行端口
service iptables stop

 systemctl stop firewalld 可能不会生效   service iptables stop
才会生效 阿里云服务器
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值