title: Mysql 8. 0安装 #标题tags: #标签
date: 2022-01-01
categories: mysql # 分类
下载并解压安装包
$ wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
$ tar Jxf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz -C /data/
ln -sf /data/mysql-8.0.26-linux-glibc2.12-x86_64 /data/mysql-3306
配置环境变量及配置文件
# 编辑配置文件(配置文件中的路径以实际的为准)
$ cat > /etc/my.cnf << EOF
[mysqld]
basedir=/data/mysql-3306
datadir=/data/mysql-3306/data
pid-file=/data/mysql-3306/data/mysqld.pid
log-error=/data/mysql-3306/data/mysql.err
socket=/tmp/mysql.sock
[client]
socket=/tmp/mysql.sock
EOF
# 配置环境变量
$ cat >> /etc/profile << 'EOF'
PATH=${PATH}:/data/mysql-3306/bin/
EOF
source /etc/profile
初始化并启动数据库
# 创建所需目录及用户并更改属主
$ mkdir /data/mysql-3306/data
useradd -M -s /sbin/nologin mysql
chown -R mysql.mysql /data/mysql-*
# 初始化数据库
$ mysqld --initialize --user mysql
# 修改数据库控制脚本
$ sed -i 's#^basedir=.*#basedir=/data/mysql-3306/#' /data/mysql-3306/support-files/mysql.server
sed -i 's#^datadir=.*#basedir=/data/mysql-3306/data/#' /data/mysql-3306/support-files/mysql.server
# 添加为系统服务
$ cp /data/mysql-3306/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
# 启动并设置为开机自启
$ systemctl enable mysqld
systemctl start mysqld
# 确认端口在监听
$ ss -lnpt |grep 3306
LISTEN 0 151 :::3306 :::* users:(("mysqld",pid=7607,fd=23))
LISTEN 0 70 :::33060 :::* users:(("mysqld",pid=7607,fd=21))
修改mysql的root用户初始密码
#获取root用户的初始密码
$ grep 'password' /data/mysql-3306/data/mysql.err | awk -F'root@localhost: ' '{print $2}'
# 重置密码为123.com
$ mysql -uroot -p -e "alter user 'root'@'localhost' identified by '123.com';" --connect-expired-password
#使用新密码进行登录测试
$ mysql -uroot -p123.com
授权用户可以指定IP访问
在mysql5.8之前的版本,可以直接grant all 去授权并创建用户,在5.8之后的版本就只能先创建用户,再授权访问了,如下:
# 创建用户
$ create user 'root'@'%' identified by '123.com';
# 授权
$ grant all privileges on *.* to 'root'@'%' with grant option;