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