阿里云centos安装mysql8

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前搞过一次 不记得了 又重新搞了下 这次安装的是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
才会生效 阿里云服务器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值