环境:ECS云服务器 Alibaba Cloud Linux 3.2104 64位
1、下载MySQL
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz
2、解压文件
tar -zxvf mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz
3、移动到/usr/local目录下
移动并且重命名
mv mysql-8.0.11-linux-glibc2.12-x86_64 /usr/local/mysql
4、创建data目录
mkdir -p /usr/local/mysql/data
5、添加用户和组
# 用户组 $ groupadd mysql # 用户 (用户名/密码) $ useradd -g mysql mysql #授权 chown -R mysql.mysql /usr/local/mysql/ (重要)
6、初始化
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --initialize
执行错误:
/usr/local/mysql/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
原因:需要安装libaio
yum install libaio
安装之后再次执行初始化
”lsf_ETFE;36q“为生成的临时密码
7、将MySQL添加到服务
$ chmod +x /etc/init.d/mysql
$ chkconfig --add mysql # 检查服务是否生效
$ chkconfig --list mysql
8、启动服务
service mysql start
.The server quit without updating PID file (/usr/local/mysq[FAILED]ysql.pid)
啪啪打脸,报错了,百度没解决。看了下日志,提示的很明显,我的配置文件配置有问题(因为是我复制过来的参数),所以报错一定要看日志,看日志。
修改配置文件之后,再次启动
9、登录
mysql -uroot -p
别着急,原因是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。
# ln -s /usr/local/mysql/bin/mysql /usr/bin
再次登录,默认没有密码,回车登录成功?开心太早(其实不然,这是因为我安装的有问题)
10、设置root密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
报错:ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
执行:flush privileges;
报错,心累,哎...没有表?
只有两个表,肯定有问题,看日志,看日志
执行mysql_upgrade,没用,提示还是找不到user表,可能user表是必须的。
11、那怎么办呢?
到data/mysql下看看,什么也没有,肯定是安装哪有问题了,删除data下所有文件,重新初始化。
$ rm -rf /usr/local/mysql/data/*
$ /usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --initialize $ service mysql start
很顺利,启动成功
12、重新登录
mysql -uroot -p
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
默认没有密码,需要重新设置密码
#关闭服务
$ service mysql stop
#安全模式登录
$ ./mysqld_safe --skip-grant-tables
#登录mysql
$ ./mysql -u root
查看mysql下的表
这回可算对了,修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
13、重启,登录,一切正常
关注公众号,领取编程学习资源,一起成长!