服务器上多MySQL部署的方法
Hello,年更博主突然诈尸。读研之前规划自己要多读书,抽空可以自学一点渗透知识。读研之后才发现每天累得跟狗一样,有一点清闲时间只想躺床上睡觉。算了,不卷了,卷不动了,躺平了,体会一下咸鱼的快乐吧hhh。
今天突然想起来自己好像还有个blog(好吧其实是前几天阿里云提醒我机子到期该续费了。果然只有要钱的时候最积极),好像是好久没更了。那今天就来写写最近做的项目中的一小部分,如何在服务器上部署多个MySQL服务。
在服务器上部署MySQL用以提供数据库服务,这是很多机构或企业常用的方法。同时在一些特殊的需求下,企业需要在服务器上部署多个MySQL提供不同的服务以适应不同的需求。这就要求我们在服务器上部署多个MySQL服务,并分别运行在不同端口。
网上已经有好多这种教程,但是我发现很多教程并不适合我,所以在这里记录一下。
0x00 前提
1、环境
系统版本:Ubuntu 18.04 LTS
MySQL版本:MySQL-5.7.33
2、安装依赖库
1、安装编译所需前置库,命令如下:$ sudo apt-get install make cmake gcc g++ bisonlibncurses5-dev build-essential
2、CMake时如果出现缺少openssl依赖,使用如下命令安装:$ sudo apt-get install libssl-dev
3、CMake时如果出现缺少pkg-config依赖,使用如下命令安装:$ sudo apt-get install pkg-config
3、设置用户名和组
使用如下命令设置用户名和组:
[root@localhost src]# groupadd mysql
[root@localhost src]# useradd -r -g mysql mysql
注意:
若系统中已经存在mysql用户或组后,建议创建新的用户和组(例如:系统中已存在mysql用户和组,则新创建用户和组为mysql5.7)。
0x01 安装第一个MySQL
如果系统中不存在MySQL数据库,可以先进行第一个数据库的安装。如果已经存在数据库,则直接跳过该步到0x02步即可。
1、CMake
进入源码文件夹后,进行CMake,命令如下:
# cmake . \
-DCMAKE_INSTALL_PREFIX=/opt/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
参数解释:
-DCMAKE_INSTALL_PREFIX 安装路径(可以修改)
-DMYSQL_DATADIR 数据存储路径(可以修改)
-DSYSCONFDIR 配置文件路径(可以修改)
-DEXTRA_CHARSETS 安装扩展字符集(不建议修改)
-DDEFAULT_CHARSET 使用字符(不建议修改)
-DDEFAULT_COLLATION。 校验字符(不建议修改)
注意:
该MySQL数据库在安装时需要boost库,版本为1.59.0,如系统中存在,则无需安装。如果不存在,则可自行安装,或在CMake时添加参数安装,如下:
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/root/boost \
其中:DWITH_BOOST参数为boost下载安装地址,可以自行修改。
2、make && make install
使用如下命令对数据库进行编译安装:
# make
# make install
时间较长,耐心等待。
3、设置Mysql目录权限
## 新建MYSQL数据文件目录
root@ubuntu:/opt/src/mysql-5.7.33# mkdir -p /data/mysql
## 修改MySQL目录所属的组和用户
root@ubuntu:/opt/mysql# chown -R mysql /opt/mysql
root@ubuntu:/opt/mysql# chgrp -R mysql /opt/mysql
## 修改MySQL数据目录所属的组和用户
root@ubuntu:/opt/mysql# chown -R mysql:mysql /data/mysql
注意:
1、其中,新建数据文件目录中的目录可自行设置,同上CMake设置的数据目录相同即可。
2、修改目录所属组和用户时修改的目录为安装目录和数据目录,同上CMake设置的数据目录相同即可。
4、初始化数据库
使用如下命令初始化数据库:
root@ubuntu:/opt/mysql# bin/mysqld --initialize-insecure --user=mysql --datadir=/data/mysql
注意:
1、先进入数据库安装目录后再进行操作。
2、参数 --datadir=为数据文件目录,使用前几步自行设置的路径。
3、初始化数据库使用的是initialize-insecure方式,即不生成初始密码方式。在登陆时在输入密码部分直接回车即可进入数据库。注意,在进入数据库后及时修改密码。
5、启动数据库
## 启动
root@ubuntu:/opt/mysql# support-files/mysql.server start
## 登录
root@ubuntu:/opt/mysql# bin/mysql -u root -p
## 修改密码
mysql> UPDATE mysql.user SET authentication_string=password('你想设置的密码') WHERE User='root';
mysql> flush privileges;
由此,第一个MySQL安装完成。
0x02 安装第X个(非第一个)MySQL
1、创建配置文件
这步是同网上大多数教程不同的地方。在MySQL-5.7.33源码编译安装后,不会生成一个新的配置文件,需要我们手动创建一个配置文件。所以我们首先创建一个新的配置文件,且不要和已存在的mysql配置文件冲突。
命名为my.cnf,写入如下内容:
[mysqld]
# 用户
user = mysql5.7
# 端口
port = 3307
# 安装路径
basedir = /opt/mysql5.7
# 数据文件路径
datadir = /data/mysql5.7
注意:
1、user为之前所创建的用户
2、port为mysql服务监听的端口,注意不要和已存在的服务冲突。
3、basedir为安装路径
4、datadir为数据文件存放路径
2、CMake
进入源码文件夹后,进行CMake,命令如下:
# cmake . \
-DCMAKE_INSTALL_PREFIX=/opt/mysql5.7 \
-DMYSQL_DATADIR=/data/mysql5.7 \
-DSYSCONFDIR=/etc/mysql5.7 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_TCP_PORT=3307 \
-DMYSQL_UNIX_ADDR=/tmp/mysqld5.7.sock
参数解释:
-DCMAKE_INSTALL_PREFIX 安装路径(可以修改)
-DMYSQL_DATADIR 数据存储路径(可以修改)
-DSYSCONFDIR 配置文件路径(可以修改)
-DEXTRA_CHARSETS 安装扩展字符集(不建议修改)
-DDEFAULT_CHARSET 使用字符(不建议修改)
-DDEFAULT_COLLATION。 校验字符(不建议修改)
-DMYSQL_TCP_PORT 监听端口号(可以修改)
-DMYSQL_UNIX_ADDR socket路径(可以修改)
注意:
1、该MySQL数据库在安装时需要boost库,版本为1.59.0,如系统中存在,则无需安装。如果不存在,则可自行安装,或在CMake时添加参数安装,如下:
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/root/boost \
其中:DWITH_BOOST参数为boost下载安装地址,可以自行修改。
2、注意配置文件路径不要和已存在的mysql服务的配置文件冲突,路径为上面所创建的配置文件的路径。
3、注意端口号不要和已存在的服务的端口号冲突。
4、注意socket路径不要和已存在的服务冲突。
3、make && make install
使用如下命令对数据库进行编译安装:
# make
# make install
时间较长,耐心等待。
4、设置Mysql目录权限
## 新建MYSQL数据文件目录
root@ubuntu:/opt/src/mysql-5.7.33# mkdir -p /data/mysql5.7
## 修改MySQL目录所属的组和用户
root@ubuntu:/opt/mysql5.7# chown -R mysql5.7 /opt/mysql5.7
root@ubuntu:/opt/mysql5.7# chgrp -R mysql5.7 /opt/mysql5.7
## 修改MySQL数据目录所属的组和用户
root@ubuntu:/opt/mysql5.7# chown -R mysql5.7:mysql5.7 /data/mysql5.7
注意:
1、其中,新建数据文件目录中的目录可自行设置,同上CMake设置的数据目录相同即可。
2、修改目录所属组和用户时修改的目录为安装目录和数据目录,同上CMake设置的数据目录相同即可。
3、注意使用之前所新创建的用户和组。
5、初始化数据库
使用如下命令初始化数据库:
root@ubuntu:/opt/mysql5.7# bin/mysqld --defaults-file=/etc/mysql5.7/my.cnf --user=mysql5.7 --initialize-insecure
注意:
1、先进入数据库安装目录后再进行操作。
2、参数 --datadir=为数据文件目录,使用前几步自行设置的路径。
3、初始化数据库使用的是initialize-insecure方式,即不生成初始密码方式。在登陆时在输入密码部分直接回车即可进入数据库。注意,在进入数据库后及时修改密码。
6、修改启动参数
进入安装路径的support-files文件夹,修改mysql.server文件。
使用编辑器打开,找到如下部分进行修改:
1、修改安装路径和数据文件存放路径:
basedir=/opt/mysql5.7
datadir=/data/mysql5.7
2、修改配置文件路径:conf=/etc/mysql5.7/my.cnf
3、修改启动命令参数:
将:$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &
添加默认配置文件参数,修改为:$bindir/mysqld_safe --defaults-file=/etc/mysql5.7/my.cnf --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &
4、修改parse_server_arguments:
注释掉下面的这条语句:
parse_server_arguments `$print_defaults $extra_args mysqld server mysql_server mysql.server`
7、启动数据库
## 启动
root@ubuntu:/opt/mysql# support-files/mysql.server start
## 登录
root@ubuntu:/opt/mysql# bin/mysql -u root -p
## 修改密码
mysql> UPDATE mysql.user SET authentication_string=password('你想设置的密码') WHERE User='root';
mysql> flush privileges;
由此,Mysql安装完成。
0x03 总结
由此,我们就可以配置多个MySQL数据库在一个服务器上。但是一定要注意的是不要同已存在的数据库发生冲突!
不知道年更博主的下一个博客是什么时候,希望我还能抽出时间吧hhh。读了研后就一个念头,能毕业就行,各位有缘再见吧
内容的丰富性和深度让人仿佛置身于知识的海洋,受益匪浅。
案例丰富,数据详实,论证扎实可信。
反讽手法运用娴熟,令人会心一笑。
文章的叙述风格独特,用词精准,让人回味无穷。
《私人诊所第三季》欧美剧高清在线免费观看:https://www.jgz518.com/xingkong/109081.html
《长生界预告片(全新修订版)》国产动漫高清在线免费观看:https://www.jgz518.com/xingkong/156316.html
《撒哈拉1995》战争片高清在线免费观看:https://www.jgz518.com/xingkong/79330.html
《煮夫战神》短片剧高清在线免费观看:https://www.jgz518.com/xingkong/22544.html
《大饭店》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/69352.html
真棒!
博主太厉害了!
想想你的文章写的特别好https://www.jiwenlaw.com/
叼茂SEO.bfbikes.com