下载需要的mysql8的安装包(本次我安装的8.0.18的安装包,不过差距不会很大,根据系统选择需要安装32位或64位)
也可以通过网络路径直接下载(可以自行百度)
https://dev.mysql.com/downloads/mysql/
cd /usr/local/ (目录)
tar -zxvf(xvf) mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz (解压)
mv xxx mysql (改目录名)
在mysql目录下创建data,用于存储数据
cd /mysql/
mkdir data
创建 mysql 用户组和 mysql 用户
groupadd mysql
useradd -g mysql mysql
给与数据目录权限
chown -R mysql.mysql /usr/local/mysql/data
改变 mysql 目录权限
chown -R mysql.mysql /usr/local/mysql/
初始化数据库
/usr/local/mysql/bin/mysqld --initialize --user=mysql
初始化失败提示如下时
执行如下,之后再输入一遍初始化命令
yum install -y libaio
初始化成功时,备份好自己的临时密码
进行mysql的配置
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
修改my.cnf文件
vim /etc/my.cnf
[mysqld]
socket=/tmp/mysql.sock
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
user=mysql
port=3306
character-set-server=utf8
#skip-grant-tables
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# skip-grant-tables
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
ESC :wq 保存退出
mysql服务添加到系统服务
cp -a ./support-files/mysql.server /etc/init.d/mysqld chmod +x /etc/rc.d/init.d/mysqld chkconfig --add mysqld
之后配置全局环境变量
vim /etc/profile
在最后两行添加配置
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
export PATH
ESC :wq 保存退出
使配置立刻生效
source /etc/profile
之后就可以启动mysql服务了
cd /usr/local/mysql/support-files ./mysql.server start
如果出现这个问题
则创建对应的log文件,并给予权限再重启
mkdir /var/log/mariadb touch /var/log/mariadb/mariadb.log chown -R mysql:mysql /var/log/mariadb/
启动成功
登陆mysql
mysql -uroot -p
输入之前备份的临时密码
首先得设置一个密码,不然会出现这个错误
设置密码:
alter user 'root'@'localhost' identified by 'Root@123456'; // 更新 flush privileges;
由于mysql8以后的身份验证插件(caching_sha2_password)
原来的身份验证插件为(mysql_native_password)
现在一部分客户端工具还是mysql_native_password的身份验证,所以将加密规则还原成mysql_native_password才能登陆
查看加密方式
select user,plugin from user where user='root';
先设置远程连接
mysql>use mysql; mysql>update user set host='%' where user='root' limit 1; mysql>flush privileges; (刷新)
再更改加密方式
mysql>use mysql;
mysql>alter user 'root'@'%' identified with mysql_native_password by 'your password';
修改新的密码
mysql> ALTER USER'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
mysql> flush privileges; (刷新)
quit; (退出mysql)
cd /usr/local/mysql/support-files
./mysql.server restart (重启)
如果是端口问题的话可以查看端口是否对外开放,百度自行配置防火墙,因为使用的是阿里的安全组所以这些不需要我自己去配置
欢迎指正错误