Linux上安装MySQL(glibc版)并配置多实例(mysqld_multi)详解数据库
Oracle提供了一套MySQL的二进制发行版,即带.tar.gz扩展名的压缩tar文件。安装步骤如下:
第一步:删除已有MySQL。
如果之前已经使用操作系统的本地包安装包管理系统安装了MySQL,像yum或apt-get。再使用本地二进制文件安装时可能会遇到问题,所以要确保以前的MySQL安装被完全删除,包括旧版本的数据文件。同时检查配置文件,像/etc/my.cnf或/etc/mysql目录,若存在则删除它们。
第二步:检查libaio依赖。
MySQL依赖于libaio库,如果本地没有安装该库,初始化data目录和后续的启动服务步骤会失败。必要时可用恰当的包管理器安装它。如基于yum的系统可用如下命令:
shell yum search libaio # search for info shell yum install libaio # install library
或者,在基于APT的系统上用如下命令:
shell apt-cache search libaio # search for info shell apt-get install libaio # install library
第三步:创建mysql用户和组。
如果系统没有一个user和group来运行mysqld,需要创建一个。如下命令添加了一个名为mysql的group和user,也可以为user和group取一个其它的名字来替代mysql,如果这样的话,就在后面的介绍中用自己的名字替换mysql。
shell groupadd mysql shell useradd -r -g mysql -s /bin/false mysql
因为user仅需要所有权,而不是登录的用途,useradd命令使用-r和-s /bin/false选项来创建一个对服务器主机没有登录权限的账户。如果useradd命令不支持这些选项则忽略它。
第四步:下载压缩包并解压。
在IT虾米网上下载Linux平台下的压缩包到/usr/local/目录下,我这里下载的版本为mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz。进入到该目录,执行如下命令:
shell tar zxvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz shell ln -s /usr/local/mysql-5.7.11-linux-glibc2.5-x86_64 mysql
第一条解压命令会创建一些安装目录,目录结构和内容如下表所示。如果没有data目录则需手动创建一个data目录。
第二条ln命令用来给解压后的目录创建一个符号连接,这可以让你更容易引用到MySQL的安装目录。
第五步:设置secure_file_priv系统变量(可选)。
进入到解压后的MySQL安装目录,创建名为mysql-files的目录,作为系统变量secure_file_priv的值,用来限制导入/导出操作至一个指定的目录。命令如下:
shell cd mysql-5.7.11-linux-glibc2.5-x86_64 shell mkdir data shell mkdir mysql-files shell chmod 750 data mysql-files
第六步:切换mysql安装用户。
如果需要,确保tar解压后的内容是名为mysql的用户来访问。如果是使用mysql用户安装的,则不需要进一步操作。如果使用root用户安装的,它将由root用户所拥有。在安装目录下以root用户身份执行如下命令来改变mysql数据库的所有权:
shell chown -R mysql . shell chgrp -R mysql .
这两条指令分别将MySQL文件的所有权分配给名为mysql的user和group。
第七步:初始化data目录。
data目录包含MySQL数据库初始化时的权限表,用来决定用户如何被授权访问数据库。data目录初始化仅在第一次安装MySQL时需要被执行。在MySQL5.6.7版本以前,使用如下命令:
shell bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
MySQL5.6.7及以后的版本则用如下命令:
shell bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
通在Windows上的压缩包安装一样,执行该命令后会产生一个随机密码,记录下该密码,如下图所示:
第八步:创建安全连接文件。
如果你想使MySQL服务器能自动部署并支持安全连接,使用如下命令来创建默认的SSL和RSA文件(仅支持MySQL5.7.6及以上版本):
shell bin/mysql_ssl_rsa_setup --dasedir=/usr/local/mysql --datadir=/usr/local/mysql/data
执行结果如下图所示:
第九步:设置最终安装所有权。
将MySQL安装目录设置为root用可访问,同时,data目录和mysql-files目录的所有权设置为mysql用户。执行如下命令:
shell chown -R root . shell chown -R mysql data mysql-files
第十步:设置MySQL配置文件。
将MySQL安装目录下的support-files目录下的my-default.cnf文件拷贝到/etc目录下,修改或添加以下内容:
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
server_id = 1
第十一步:启动MySQL服务
执行下面的mysqld_safe命令来启动MySQL服务,第二条命令用于将MySQL添加到系统服务并自启动。
shell bin/mysqld_safe --user=mysql shell cp support-files/mysql.server /etc/init.d/mysql
设置完成后可通过service mysql start和service mysql stop命令启动和停止MySQL服务。
第十二步:更改root密码
在MySQL安装目录下执行如下命令进行登录
shell bin/mysql –uroot -p
执行该命令后会提示输入密码,此时输入在第七步中提示的随机密码,登录成功后进入到MySQL命令行,执行如下MySQL命令来更改root密码
mysql ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘new_password`;
至此MySQL安装完成。
下面将讲到在Linux上配置单机多实例MySQL。
MySQL有mysqld_safe、mysql.server、mysqld_multi三种启动方式。上面有讲到用mysqld_safe和mysql.server方式启动MySQL。mysqld_multi用于管理多个mysqld的服务进程,并且可以监听在不同Unix socket文件和TCP/IP端口上的连接。这里将在MySQL已安装好的情况下讲解通过mysqld_multi来配置MySQL单机多实例。
首先在MySQL安装目录下新建目录data3307,表示端口号为3307的MySQL实例的数据目录,并变更权限为mysql用户组,再初始化该目录,该步骤同样要记住生成的随机密码。命令如下:
shell cd /usr/local/mysql shell mkdir data3307 shell chmod 750 data3307 shell bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data3307 --basedir=/usr/local/mysql
然后修改/etc/my.cnf文件,内容如下(只列出与多实例配置相关的变量):
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
[mysqld1]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
server_id = 1
socket = /tmp/mysql.sock1
pid-file = /usr/local/mysql/data/mysql_safe.pid
[mysqld2]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data3307
port = 3307
server_id = 2
socket = /tmp/mysql.sock2
pid-file = /usr/local/mysql/data3307/mysql_safe.pid
mysqld_multi会在MySQL的配置文件my.cnf中查找分组名[mysqldN],N为正整数,用于标识不同MySQL实例,并且是mysqld_multi命令start|stop|reload|report选项的参数。修改完成后停止之前运行的mysql服务并执行如下命令:
shell bin/mysqld_multi –-defaults-file=/etc/my.cnf start 1,2
–defaults-file选项用于指定要加载的配置文件路径,命令执行成功后就启动了配置文件中[mysqld1]和[mysqld2]两组配置下的MySQL实例,可通过该命令的report选项来查看各个实例的运行情况,命令如下:
shell bin/mysqld_multi report 1,2
执行结果如下图所示:
mysqld_multi命令的stop和reload选项用法也一样,用于服务停止和重新加载配置文件。
MySQL服务启动成功后即可登录服务,不过通过mysqld_multi方式启动的MySQL服务在登录时需要指定socket文件,也就是在my.cnf文件中配置的socket参数,比如登录端口为3307的MySQL实例的命令如下:
shell bin/mysql –uroot –P3307 –S /tmp/mysql.sock2 –p shell password:
输入前面记录下来的随机密码即可登录成功,首次登录成功后需修改root密码,执行如下命令:
mysql ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘new_password`;
至此,端口号为3307的MySQL实例配置完成,如需更多实例按这些步骤继续配置即可。
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/4215.html
mysqloracle相关文章
- SUSE Linux 11里Nginx+Resin+JSP+Memcached+MySQL安装配置整合
- MySQL Error number: 3619; Symbol: ER_ILLEGAL_PRIVILEGE_LEVEL; SQLSTATE: HY000 报错 故障修复 远程处理
- MySQL:实现数据库实例创建的简易步骤(mysql创建数据库实例)
- Linux查看接口状态:一个实例(linux查看接口状态)
- Linux进入MySQL:快速入门指南(linux进mysql)
- 如何在 Linux 中进入 MySQL 数据库(linux怎么进入mysql数据库)
- 菜鸟指南:Linux Socket编程实例(linux套接字编程实例)
- 快速轻松掌握Linux访问MySQL技巧(linux访问mysql)
- Linux系统磁盘调度算法研究(linux磁盘调度算法)
- 实例如何安装并同时运行多个MySQL实例(安装两个mysql)
- 数据库安装安装Linux下MySQL数据库:技能提升你的数据库知识(linux版mysql)
- MySQL启动多实例:技巧与指南(mysql启动多实例)
- Linux下如何挂载USB?(linux挂载usb)
- MySQL实例分析:学习如何管理大型数据库(mysql样例)
- Linux系统安全防护测试实例(linux安全测试)
- Linux网络监测:实时流量监测器需求解析(linux监测流量)
- 深入学习Linux软中断:掌握实用实例方法(linux软中断实例)
- 如何在 MySQL 中复制一列数据(mysql复制一列数据)
- MySQL参数详解,让你更加了解Mysql参数定义及优化。(mysql参数定义)
- Linux下的响铃命令:让你的提示符响起来(linux响铃命令)
- SQL Server与MySQL数据库管理系统之间的差异(sqlserver和mysql的区别)
- Linux服务器上快速安装MySQL数据库(linux服务器安装mysql)
- MySQL事务实例详解(mysql中事物的实例)
- MySQL求和操作如何对两列数据进行求和(mysql中两列数据求和)
- Axios驱动MySQL让数据存储更简单(Axios连mysql)
- 分实例的管理优势解析MySQL不同dis(mysql 不同dis)