一、以tar.xz压缩包为安装源
网址:https://downloads.mysql.com/archives/community/
二、解压压缩包
首先,将压缩包从windows传输到linux上
解压到/usr/local下,并且将解压的目录名称改为mysql
tar -xvf /tmp/mysql-8.1.0-linux-glibc2.28-x86_64.tar.xz -C /usr/local/ # 解压
mv /usr/local/mysql-8.1.0-linux-glibc2.28-x86_64/ /usr/local/mysql # 重命名
三、建立用户和组
先查看一下,当前的Linux中是否存在mysql的用户和组 (我这里并不存在)
cat /etc/passwd | grep mysql
cat /etc/group | grep mysql
添加用户和组
groupadd mysql
useradd -r -g mysql mysql
四、创建目录并修改权限
mkdir -p /data/mysql
查看一下 /data/mysql 以及刚刚解压缩的 /usr/local/mysql 的权限,发现其所属用户和组均为root
ls -dl /usr/local/mysql/
ls -dl /data/mysql/
将所有者和组均改为mysql
chown -R mysql.mysql /usr/local/mysql
chown -R mysql.mysql /data/mysql
五、初始化mysql
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql --initialize
初始化时,会生成一个初始的密码,需要记录一下,待会儿使用 “qGlt6e<yeDa=”
六、配置my.cnf配置文件
因为我们是那个压缩包安装,即离线安装,所以这个my.cnf是需要自己手动配置的命令: vim /etc/my.cnf
将下面的内容,输入到 /etc/my.cnf中
[mysqld]
datadir=/data/mysql
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
user=mysql
port=3306
character-set-server=utf8
# 取消密码验证
# skip-grant-tables
# # Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
七、启动服务
① 这里的话,需要将mysqld服务找到,然后复制到 /etc/init.d/mysqld(因为默认的离线安装,它是不识别这个mysqld的)
find / -name mysql-server # 查找mysql服务
# 如果不存在 /etc/init.d 那么就自己 mkdir /etc/init.d 再进行拷贝
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld # 复制
② 然后需要安装一下mariadb-server的服务,因为mysql.service依赖于此
yum install -y mariadb-server # 1. 安装服务
systemctl start mariadb.service # 2.启动服务
systemctl enable mariadb.service # 3.设置为开机自启
③ 启动mysql服务
service mysqld start
④ 接着,需要将 /tmp/mysql.sock 与 /var/lib/mysql/mysql.sock 建立一个软连接 ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
八、修改root密码
mysql -uroot -p # 进入mysql
# 输入临时密码 例如我的:qGlt6e<yeDa=
修改密码为 2020SOLO@root
ALTER USER 'root'@'localhost' IDENTIFIED BY '2020SOLO@root';
九、设置windows远程登录
use mysql;
update user set host ='%' where user ='root' and host ='localhost'; # root@localhost 实际访问名称
flush privileges;
exit;