1.下载解压安装
wget http://ftp.iij.ad.jp/pub/db/mysql/Downloads/MySQL-8.0/mysql-8.0.12.tar.gz
tar -xvf mysql-8.0.12.tar.gz
2.创建mysql用户和用户组
sudo groupadd mysql
sudo useradd -s /sbin/nologin -g mysql -r mysql //不允许登录
3.编译安装
cd mysql-8.0.12
sudo cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/data
-DSYSCONFDIR=/usr/local/mysql/etc
-DMYSQL_TCP_PORT=3306
-DDOWNLOAD_BOOST=1
-DWITH_BOOST=/usr/local/mysql-8.0.11/boost
make && make install
4. 初始化及修改目录权限
bin/mysqld --initialize --user=mysql --datadir=/data/mysql/
#执行初始化时会产生一个随机密码,需要拷贝【l(akwnBsb2kN】
bin/mysql_ssl_rsa_setup
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /data/mysql
chmod 755 /usr/local/mysql -R
chmod 755 /data/mysql -R
#注意:配置文件中的pid文件和日志文件目录需要设置权限给mysql写入
5. 使用随机密码登录
sudo bin/mysqld_safe --user=mysql &
bin/mysql -u root -p #登录后修改密码
alter user "root"@"localhost" identified by '123qwe4r';
#远程访问
use mysql;
update user set Host='%' where User='root';
flush privileges;
6. 连接报错
#这个错误出现的原因是在mysql8之前的版本中加密规则为mysql_native_password,而在mysql8以后的加密规则为caching_sha2_password。
#修改配置文件my.conf
default_authentication_plugin= mysql_native_password
#修改完重启mysql服务修改用户密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
#设置密码规则
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
#更新一下用户的密码
FLUSH PRIVILEGES; #刷新权限
7. 拷贝启动文件
sudo cp /usr/lib/systemd/system/mysql.server /etc/init.d/mysqld
#systemctl管理mysql启动
sudo vim /usr/lib/system/system/mysql.service #加入以下内容
[Unit]
Description=redis-server
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/etc/init.d/mysqld start
ExecStop=/etc/init.d/mysqld stop
[Install]
WantedBy=multi-user.target