二进制部署mysql8.0.25

数据库包下载地址:https://downloads.mysql.com/archives/community/  

选择对应版本的tar包

 

 

 1、上传下载的包解压,并创建软连接

#解压到/usr/local目录下
[root@localhost ~]# tar xf mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz -C /usr/local/
[root@localhost ~]# cd /usr/local/

 
#在/usr/local目录下创建软连接
[root@localhost local]# ln -sv mysql-8.0.25-linux-glibc2.12-x86_64/ mysql
‘mysql’ -> ‘mysql-8.0.25-linux-glibc2.12-x86_64/’

2、新建mysql用户组和mysql用户

[root@master /usr/local]# groupadd mysql
[root@master /usr/local]# useradd -g mysql -r -s /sbin/nologin -M -d /data/mysqldata mysql

3、新建数据目录并赋予属组及相关权限

[root@master /usr/local]# chown -R mysql:mysql /usr/local/mysql/
[root@master /usr/local]# mkdir -p /data/mysqldata
[root@master /usr/local]# chmod -R 770 /data/mysqldata
[root@master /usr/local]# chown -R mysql:mysql /data/mysqldata

4、初始化mysqld,生成mysql初始密码

[root@master /usr/local]# cd /usr/local/mysql
 
#初始化mysqld(会提示有个报错,缺少libaio插件)
[root@master /usr/local/mysql]# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldata --initialize
./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
 
#安装libaio
[root@master /usr/local/mysql]# yum install -y libaio
 
#再次初始化mysqld,日志最下方输出mysql初始密码  (hS9Le#Ki9dM 
[root@localhost mysql]# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldata  --lower-case-table-names=1 --initialize

2021-07-27T02:21:12.933284Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2021-07-27T02:21:12.933785Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.25-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.25) initializing of server in progress as process 19462
2021-07-27T02:21:12.944300Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2021-07-27T02:21:13.501336Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2021-07-27T02:21:14.462953Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: tYiIF0sIu6.j

5、配置环境变量

#配置环境变量
[root@master /usr/local/mysql]# echo "PATH=$PATH:/usr/local/mysql/bin" > /etc/profile.d/mysql.sh
[root@master /usr/local/mysql]# source /etc/profile.d/mysql.sh

6、使用systemctl来管理mysql

#编写system文件,使用systemctl来管理mysqld服务
[root@master /usr/local/mysql]# vim /usr/lib/systemd/system/mysql.service
[Unit]
Description=MySQL Server
After=network.target
 
[Install]
WantedBy=multi-user.target
 
[Service]
Type=forking
TimeoutSec=0
PermissionsStartOnly=true

ExecStart=/usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysqldata --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysqldata/master.err --pid-file=/data/mysqldata/master.pid --socket=/tmp/mysql.sock --port=3306 --daemonize 或者 或者 ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --daemonize 其他的配置文件配置到 --defaults-file=/etc/my.cnf LimitNOFILE = 65535 Restart=on-failure RestartSec=3 RestartPreventExitStatus=1 PrivateTmp=false #重载systemctl配置 [root@master /usr/local/mysql]# systemctl daemon-reload #使用systemctl命令启动mysql服务 [root@master /usr/local/mysql]# systemctl start mysql.service [root@master /usr/local/mysql]# ps aux |grep mysql mysql 19178 3.6 34.2 1190144 171508 ? Sl 16:00 0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysqldata --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysqldata/master.err --pid-file=/data/mysqldata/master.pid --socket=/tmp/mysql.sock --port=3306 --daemonize root 19208 0.0 0.1 112660 932 pts/1 S+ 16:00 0:00 grep --color=auto mysql

systemctl enable mysql.service ---设置开启自启动

systemctl start mysql.service ----开启此服务

systemctl stop mysql.service -----关闭此服务

systemctl restart mysql.service -----重启此服务

systemctl status mysql.service -----查看服务状态

7、登录mysql并修改密码

 

#如果密码有通配符,可以用单引号括起来,或者在交互模式粘贴
[root@master /usr/local/mysql]# mysql -uroot -p'(hS9Le#Ki9dM'

... 
mysql> set password='123456';
mysql> use mysql;
mysql> update user set host = '%' where user = 'root';
mysql> FLUSH PRIVILEGES;
mysql> exit

[root@master /usr/local/mysql]# mysql -uroot -p

 

posted @ 2021-12-27 11:04  岁月静好·  阅读(179)  评论(0)    收藏  举报