所谓的免安装就是就是使用MySQL服务端二进制压缩包部署服务,而不是直接通过包管理器方式安装MySQL服务器。
如下示例为在CentOS7环境免安装MySQL 8.0.31
服务器。
在安装之前需要先检查下是否已经通过包管理器安装过MySQL服务器,如果已经安装,则先把安装的卸载。
$ rpm -qa | grep mysql
$ rpm -qa | grep mariadb
$ mariadb-libs-5.5.56-2.el7.x86_64
$ yum -y remove mariadb-libs-5.5.56-2.el7.x86_64
下载MySQL服务端压缩包:mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
。
解压文件:
$ tar Jxvf mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
重命名mysql安装目录:
$ mv mysql-8.0.31-linux-glibc2.12-x86_64 mysql
添加新的用户组和新的用户,用来管理mysql,提高安全性:
$ groupadd mysql
$ useradd -r -g mysql -s /bin/false mysql
新建mysql的data目录:
$ cd mysql
$ mkdir data
修改mysql目录用户为刚刚新建的mysql组中的mysql用户:
$ chown -R mysql:mysql ./
初始化安装mysql数据库:
# 执行命令后会生成默认的root用户临时密码
$ ./bin/mysqld --user=mysql --basedir=/data/opt/mysql --datadir=/data/opt/mysql/data --initialize
修改/etc/my.cnf
配置文件(从版本5.7.18开始,MySQL免安装版二进制包中就不包含该文件了,即不需要my.cnf
文件也可以正常运行)。
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/data/opt/mysql
datadir=/data/opt/mysql/data
socket=/data/opt/mysql/mysql.sock
#设置忽略大小写(简单来说就是sql语句是否严格),默认库名表名保存为小写, 不区分大小写
lower_case_table_names = 1
# 开启ip绑定
bind-address = 0.0.0.0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/data/opt/mysql/data/mysqld.pid
#指定客户端连接mysql时的socket通信文件路径
[client]
socket=/data/opt/mysql/mysql.sock
default-character-set=utf8
将mysql添加至开机启动:
$ cp ./support-files/mysql.server /etc/init.d/mysqld
修改mysqld,使用vim /etc/init.d/mysqld
命令修改MySQL路径:
basedir=/data/opt/mysql
datadir=/data/opt/mysql/data
设置开机启动:
$ chkconfig --add mysqld
启动mysql:
$ service mysqld start
为了可以在任意目录上都可以使用mysql命令登录mysql,将mysql安装目录配置到环境变量中,在/etc/profile
文件的末尾添加以下代码:
$ export PATH=$PATH:/data/opt/mysql/bin
使配置文件的配置立即生效:
$ source /etc/profile
使用初始化MySQL数据库时生成的root用户临时密码登录mysql服务器
$ mysql -uroot -p
修改root用户的密码,并且刷新
mysql> alter user 'root'@'localhost' identified by 'root用户新密码';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
至此,使用压缩包格式的二进制文件部署MySQL服务器完毕。
【参考】
CentOS7下安装mysql免安装版
linux下使用 tar 来压缩和解压 tar.gz 和 tar.xz 文件