mysql8.2.0二进制方式安装部署

1.进入官网下载源码包

官网链接:mysql官网安装包下载

版本:MySQL8.2.0

操作系统:Linux-通用

2. 上传源码到家目录下,上传到虚拟机上

[root@ddecs bin]# ls -l /root/|grep mini

-rw-r--r--  1 root root  61125672 Jan 30 14:30 mysql-8.2.0-linux-glibc2.17-x86_64-minimal.tar.xz

二进制安装步骤
2.1提前下载依赖工具软件
[root@ddecs bin]# yum install -y cmake ncurses-devel gcc gcc-c++ vim lsof bzip2 openssl-devel ncurses-compat-libs net-tools
2.2 解压二进制安装包
[root@ddecs ~]# tar xf mysql-8.2.0-linux-glibc2.17-x86_64-minimal.tar.xz

2.3 移动MySQL解压后的文件到/usr/local下改名为mysql,/usr/loca/mysql是MySQL的安装目录

2.4 新建组和用户 mysql

groupadd mysql

useradd -r -g mysql -s /bin/false mysql

-r 指定新建用户为系统用户,只用作负责登录

-g 指定新建用户的组为mysql 

-s 指定新建用户的shell 为/bin/false 无法ssh登录-确保安全

2.4 关闭firewalld防火墙,并且设置开机不启动

service firewalld stop

systemctl disable firewalld

2.5 临时关闭selinux

setenforce 0

永久关闭selinux

sed -i "/^SELINUX=/ s/enforcing/disabled/" /etc/selinux/config

2.6 新建存放数据目录并修改权限

mkdir /data/mysql -p

修改/data/mysql 目录的权限归mysql用户和mysql组所有,这样mysql用户启动的mysql进程可以对这个文件夹进行读写

chown mysql. /data/mysql

只允许mysql这个用户和mysql组可以访问

chmod 750 /data/mysql

2.7 初始化mysql 

cd /usr/local/mysql/bin 

[root@ddecs bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql/ & >passwd.txt

初始化的目的:建立起mysql启动所需要的文件和库,存放在/data/mysql下

--initialize 初始化

--user 指定启动用户

--basedir 指定安装目录

--datadir 指定mysql数据目录

&>将输出重定项到passwd.txt文件里,方便后续使用awk截取获得密码

[1] 116748

[root@ddecs bin]# ./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

[1]+  Exit 127                ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql/

报错提示缺少依赖组件
[root@ddecs bin]# yum install -y libaio
再次初始化成功
2.8 让mysql支持ssl方式登录的设置

[root@ddecs bin]# ./mysql_ssl_rsa_setup --datadir=/data/mysql/

修改PATH变量加入mysql bin 目录的路径

临时

[root@ddecs bin]# export PATH=/usr/local/mysql/bin/:$PATH

设置开机启动

[root@ddecs bin]# echo "export PATH=/usr/local/mysql/bin/:$PATH" >> /root/.bashrc

2.9 复制support-files里的mysql.server文件到/etc/init.d/目录下叫mysqld,并修改datadir目录的值

[root@ddecs bin]# cp ../support-files/mysql.server /etc/init.d/mysqld

[root@ddecs bin]# sed -i "70c datadir=/data/mysql" /etc/init.d/mysqld

生成/etc/my.cnf配置文件

[root@ddecs bin]# cat >/etc/my.cnf <<EOF

> [mysqld_safe]

>

> [client]

> socket=/data/mysql/mysql.sock

>

> [mysqld]

> socket=/data/mysql/mysql.sock

> port = 3306

> open_files_limit = 512M

> character-set-server=utf8

>

> [mysql]

> auto-rehash

> prompt=\\u@\\d \\R:\\m myslq>

> EOF

修改内核的open file 的数量,设置开启启动配置生效

[root@ddecs bin]# ulimit -n 1000000

[root@ddecs bin]# echo "* soft nofile 65535" >> /etc/security/limits.conf

[root@ddecs bin]# echo "* hard nofile 65535" >> /etc/security/limits.conf

启动mysqld进程,并将mysqld添加到linux系统的服务管理名单里

[root@ddecs bin]# service mysqld start

Starting MySQL.Logging to '/data/mysql/ddecs.err'.

/usr/local/mysql/bin/mysqld_safe: line 686: ulimit: 512M: invalid number

.. SUCCESS!

[root@ddecs bin]# system enable mysqld

-bash: system: command not found

[root@ddecs bin]# systemctl enable mysqld

mysqld.service is not a native service, redirecting to /sbin/chkconfig.

Executing /sbin/chkconfig mysqld on
查看实例端口服务已启动



初始化msyql报错

[root@ddecs bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql/ & >passwd.txt
[root@ddecs bin]# ls -l /data/mysql/

[1] 117318

[root@ddecs bin]# 2024-01-30T07:29:33.461265Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start.

2024-01-30T07:29:33.461398Z 0 [Warning] [MY-010140] [Server] Could not increase number of max_open_files to more than 1000000 (request: 536870912)

2024-01-30T07:29:33.463438Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.2.0) initializing of server in progress as process 117318

2024-01-30T07:29:33.470648Z 0 [Warning] [MY-013242] [Server] --character-set-server: 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in afuture release. Please consider using UTF8MB4 in order to be unambiguous.

2024-01-30T07:29:33.470720Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.

2024-01-30T07:29:33.470731Z 0 [ERROR] [MY-013236] [Server] The designated data directory /data/mysql/ is unusable. You can remove all files that the server added to it.

2024-01-30T07:29:33.470811Z 0 [ERROR] [MY-010119] [Server] Aborting

2024-01-30T07:29:33.471056Z 0 [System] [MY-010910] [Server] /usr/local/mysql/bin/mysqld: Shutdown complete (mysqld 8.2.0)  MySQL Community Server - GPL.

2024-01-30T07:29:33.471457Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end.

^C

[1]+  Exit 1                  ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql/

total 32

-rw------- 1 root root 1679 Jan 30 15:00 ca-key.pem

-rw-r--r-- 1 root root 1103 Jan 30 15:00 ca.pem

-rw-r--r-- 1 root root 1103 Jan 30 15:00 client-cert.pem

-rw------- 1 root root 1675 Jan 30 15:00 client-key.pem

-rw------- 1 root root 1679 Jan 30 15:00 private_key.pem

-rw-r--r-- 1 root root  451 Jan 30 15:00 public_key.pem

-rw-r--r-- 1 root root 1103 Jan 30 15:00 server-cert.pem

-rw------- 1 root root 1679 Jan 30 15:00 server-key.pem

[root@ddecs bin]# rm -ef /data/mysql/*


拓展一:

如果初始密码未获取到,可以修改my.cnf文件,再mysqld模块下添加skip-grant-tables参数,免密登录,把root密码置为空后,重启mysql,依旧可以免密登录,登录到数据库后修改root登录密码,刷新权限,重新登录即可

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容