非root用户安装Mysql8.0

下载mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz包,上传至/usr/local目录下

新增mysql用户

复制代码
su root
groupadd hbszdb
useradd -r -g hbszdb mysql
passwd mysql

一、解压安装

复制代码
cd /usr/local
# 将压缩包的所有者授予mysql用户
chown -R mysql:hbszdb mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
chmod -R 750 mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
# 让mysql用户可以在/user/local中新建文件夹,从而可以解压上面的压缩包
chmod 757 /usr/local/
​
# 切换mysql用户,解压压缩包
su mysql
tar -Jxvf mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
​
# 解压缩后的文件夹名太长,修改下
mv mysql-8.0.27-linux-glibc2.12-x86_64 mysql8
​
# 将/user/local的权限改回来,默认是755
chmod 755 /usr/local/

二、配置环境变量

复制代码
su root
vi /etc/profile
# 在文件最后插入
export PATH=$PATH:/usr/local/mysql8/bin
# 重新加载环境
source /etc/profile
# 验证
​
mysql
# 说明环境变量生效:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
​
​
​
# 如果mysql用户要验证,也要执行上面这句source

三、创建数据目录

复制代码
su mysql
mkdir -p /usr/local/mysql8/data

四、添加配置文件

复制代码
su root
touch /usr/local/etc/my.cnf
chown -R mysql:hbszdb /usr/local/etc/my.cnf
# 更改权限
chmod -R 750 /usr/local/etc/my.cnf
​
su mysql
vi /usr/local/etc/my.cnf

4.1 配置文件内容

复制代码
[mysql]
# 默认字符集
default-character-set=utf8mb4
[client]
port       = 3306
socket     = /tmp/mysql.sock
[mysqld]
port       = 3306
server-id  = 3306
user       = mysql
socket     = /tmp/mysql.sock
# 安装目录
basedir    = /usr/local/mysql8
# 数据存放目录
datadir    = /usr/local/mysql8/data/mysql
log-bin    = /usr/local/mysql8/data/mysql/mysql-bin
innodb_data_home_dir      =/usr/local/mysql8/data/mysql
innodb_log_group_home_dir =/usr/local/mysql8/data/mysql
# 日志及进程数据的存放目录
log-error =/usr/local/mysql8/data/mysql/mysql.log
pid-file  =/usr/local/mysql8/data/mysql/mysql.pid
# 服务端字符集
character-set-server=utf8mb4
lower_case_table_names=1
autocommit =1
##### 以上涉及文件夹明,注意修改
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
#query_cache_size = 128M
tmp_table_size = 128M
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
binlog_format=mixed
binlog_expire_logs_seconds =864000
# 创建表时使用的默认存储引擎
default_storage_engine = InnoDB
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
transaction-isolation=READ-COMMITTED
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout

五、初始化

复制代码
su mysql
mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/usr/local/mysql8/data/mysql --user=mysql --initialize-insecure
  • --defaults-file:指定配置文件(要放在--initialize 前面)

  • --user: 指定用户

  • --basedir:指定安装目录

  • --datadir:指定初始化数据目录

  • --intialize-insecure:初始化无密码(否则生成随机密码)

    可能会报

    复制代码
    mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

    使用yum安装即可

    复制代码
    yum -y install libaio		

    六、安装

    su mysql
    /usr/local/mysql8/bin/mysqld_safe --defaults-file=/usr/local/etc/my.cnf &

6.1 确认是否启动

复制代码
# 输出有很多,就启动成功
ps -ef|grep mysql
# 连一下mysql,应该可以直接连上,不用密码
mysql

修改密码

复制代码
# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

七、将mysql注册为服务,并开机自启动

复制代码
su root
vi /etc/systemd/system/mysql.service

粘贴如下内容

复制代码
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/8.0/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=hbszdb
Type=notify
TimeoutSec=0
ExecStart=/usr/local/mysql8/bin/mysqld --defaults-file=/usr/local/etc/my.cnf $MYSQLD_OPTS

LimitNOFILE=65535
Restart=on-failure
RestartPreventExitStatus=1
Environment=MYSQLD_PARENT_PID=1
PrivateTmp=false

重新加载配置文件

复制代码
systemctl daemon-reload

设置开机自启

复制代码
systemctl enable mysqld
相关推荐
Dxy12393102161 天前
Python判断MySQL表是否存在,不存在则创建
python·mysql·adb
五五六六05242 天前
adb server is out of date. killing...问题的解决
网络安全·adb
蜗牛、Z2 天前
Android 日常开发Adb常用命令附档
android·adb
天下·第二3 天前
达梦数据库适配
android·数据库·adb
感谢地心引力3 天前
【Android】Shizuku 加 SystemUI Tuner 实现手机状态栏特定图标隐藏(小米 Hyper OS 3为例)
android·adb·智能手机·调试·hyper os·shizuku
搬砖的工人4 天前
记录一次windows 安装 mysq过程
android·windows·adb
_F_y4 天前
MySQL用户管理
android·mysql·adb
定偶4 天前
C语言操作MYSQL
c语言·mysql·adb
一池秋_4 天前
aarch64_Ubuntu (Linux)连不上adb解决方法
linux·ubuntu·adb
深念Y5 天前
中兴微随身WiFi 板号UZ901_v1.6 影腾Y1新版本 增加SIM卡槽 开启ADB 去云控 改串号教程 下
数据库·adb