centos8 mysql 8.0.26二进制包安装
下载,解压
cd /data
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
tar xf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.26-linux-glibc2.12-x86_64 mysql8.0.26
配置环境变量
vi /etc/profile
export MYSQL_HOME=/data/mysql8.0.26
export PATH=${PATH}:${MYSQL_HOME}/bin
source /etc/profile
cd mysql8.0.26
# 配置参数
vi my.cnf
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/data/mysql8.0.26
# 设置mysql数据库的数据的存放目录
datadir=/data/mysql8.0.26/data
# 指定存放进程ID的文件
pid_file=/data/mysql8.0.26/data/mysql.pid
# 指定错误日志路径
log_error=/data/mysql8.0.26/data/mysql.error
# 允许最大连接数
max_connections=1000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8MB4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
创建用户组
groupadd mysql
创建用户
useradd -g mysql mysql
配置目录权限
chown mysql:mysql -R /data/mysql8.0.26
chmod -R 755 /data/mysql8.0.26
检查是否存在libtinfo.so.5,不存在则创建链接
find /usr/lib64 -name "libtinfo.so.5"
如果没有,则需要创建链接
cd /usr/lib64
ll -h |grep libtinfo.so
ln -s libtinfo.so.6.1 libtinfo.so.5
初始化
/data/mysql8.0.26/bin/mysqld --console --initialize --user=mysql
cat /data/mysql8.0.26/data/mysql.error
找到最后一行的密码
[Server] A temporary password is generated for root@localhost: xxxxxxx
注册到systemd
vi /etc/systemd/system/mysql.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/data/mysql8.0.26/bin/mysqld --defaults-file=/data/mysql8.0.26/my.cnf
LimitNOFILE = 65535
启停
systemctl start mysql
开机启动
systemctl enable mysql
登录配置账号
#登录mysql
mysql -uroot -p'xxxxxxx'
#修改登陆密码
alter user 'root'@'localhost' identified by '123456';
#刷新
flush privileges;
设置允许root用户远程登录
use mysql;
update user set host='%' where user='root';
flush privileges;
重新登录验证
mysql -uroot -p'123456'