基于mysql多实例安装的深入解析_Mysql

相信大多数人都遇到过多实例安装mysql吧,相信大多数人只要找到一份多实例安装的教程就会很容易搞定了,但是越是顺利的安装过程越让我们不安,为什么呢,当我们在按照教程一步一步来的时候,你知道每句话的意思的目的吗?出现错误以后的我们又该怎么办呢?现在我为大家展示我的安装过程,各种纠结,各种错误。
首先说明一个场景:我的电脑是ubuntu系统,之前apt-get自动安装过mysql。这也是出现错误最多的原因之一。
下面是我的安装过程,其中充斥着各种错误:

复制代码 代码如下:

6.mkdir mysql
7.groupadd mysql
8.useradd -r -g mysql mysql
# make clean
# rm -f CMakeCache.txt
# rm -rf /etc/my.cnf
9.cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all
-DENABLED_LOCAL_INFILE=1
make
make install

这个表示我们的mysql源码安装已经完成了,现在要做就是初始化用户了,也就是多实例中最重要的一部了,以后的每一步都要注意命令执行后的结果:

复制代码 代码如下:

cd /usr/local/mysql
chown -R root:mysql .
chown -R mysql:mysql data
11.cp support-files/my-medium.cnf /etc/my.cnf
12.cd /usr/local/mysql

复制代码 代码如下:

<SPAN style="LINE-HEIGHT: 22px; FONT-FAMILY: Verdana, 宋体, Helvetica, sans-serif; FONT-SIZE: 14px">scripts/mysql_install_db </SPAN><BR style="LINE-HEIGHT: 22px; FONT-FAMILY: Verdana, 宋体, Helvetica, sans-serif; FONT-SIZE: 14px"><SPAN style="LINE-HEIGHT: 22px; FONT-FAMILY: Verdana, 宋体, Helvetica, sans-serif; FONT-SIZE: 14px">--defaults-file=/usr/local/mysql/data_3308/my.cnf </SPAN><BR style="LINE-HEIGHT: 22px; FONT-FAMILY: Verdana, 宋体, Helvetica, sans-serif; FONT-SIZE: 14px"><SPAN style="LINE-HEIGHT: 22px; FONT-FAMILY: Verdana, 宋体, Helvetica, sans-serif; FONT-SIZE: 14px">--datadir=/usr/local/mysql/data_3308/</SPAN>

上面的mysql_install_db这个命令就是来进行初始化新用户。这里要注意命令执行后的结果,第一次的时候我的执行结果是这样的:

复制代码 代码如下:

root@zhou:/usr/local/mysql# scripts/mysql_install_db --defaults-file=/usr/local/mysql/data_3307/my.cnf --datadir=/usr/local/mysql/data_3307/
Installing MySQL system tables...
130107 10:25:47 [ERROR] COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'utf8'
130107 10:25:47 [ERROR] Aborting
130107 10:25:47 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete

这里可以看出已经出现了错误,原因是什么,大家应该可以看明白了,自己太马虎了。导致自己重新执行了一次cmake
然后重新进行上面的命令了。直到我们看到这样的结果:表示初始化成功了,恭喜你下面可以进行下面的操作了。

复制代码 代码如下:

root@zhou:/usr/local/mysql# mysql_install_db --user=mysql --defaults-file=/usr/local/mysql/data3307/my.cnf --datadir=/usr/local/mysql/data3307/
Installing MySQL system tables...
OK
Filling help tables...
OK

这时他会在我们的data目录中生成一些mysql库啊和test库等这些基本信息。
对了一定要注意了,权限的分配,一不小心mysql的就无法读取相关文件的权利。

复制代码 代码如下:

<SPAN style="LINE-HEIGHT: 22px; FONT-FAMILY: Verdana, 宋体, Helvetica, sans-serif; FONT-SIZE: 14px">mysqld_safe --defaults-file=/usr/local/mysql/data_3307/my.cnf &</SPAN>

复制代码 代码如下:

130107 13:35:36 [Note] Server socket created on IP: '0.0.0.0'.
130107 13:35:36 [ERROR] /usr/local/mysql/bin/mysqld: Can't find file: './mysql/host.frm' (errno: 13)
130107 13:35:36 [ERROR] Fatal error: Can't open and lock privilege tables: Can't find file: './mysql/host.frm' (errno: 13)
130107 13:35:36 mysqld_safe mysqld from pid file /usr/local/mysql/data3307/mysql.pid ended

这里的错误也是很明显的原因就是我们没有读取host。frm的权限了,补救的办法又两种:一种是直接到目录下给mysql附上这样的权限,第二种就是追究它原因为什么会那样呢?原因是我们在初始化的时候,没有加入--user=mysql这个参数才导致生成的文件全市root权限。这样就好办了在下次做的时候我们就需要这样的命令了:

复制代码 代码如下:

root@zhou:/usr/local/mysql# mysql_install_db --user=mysql --defaults-file=/usr/local/mysql/data3307/my.cnf --datadir=/usr/local/mysql/data3307/ --user=mysql

ok,这时我们可以通过命令来查看一下我们开通的服务个数,然后登录上去进行基本的操作,权限,键表啊,replication啊等等。

这里启动了三个mysql服务器后,发现只能登录到3306上面的服务去,而其他的就是没法登录,当我把3307 3306杀掉后,登录mysql确出现错误了,

复制代码 代码如下:

root@zhou:/usr/local/mysql/tmp# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)

这里的错误原因是当我在没有指定那个数据库服务器是它是有个默认启动计划,所以这里可以看出它还是在等待mysql 3306的那个服务器的。
root@zhou:/etc/init.d# mysql -h127.0.0.1 -P3307

时间: 2024-08-22 00:38:07

基于mysql多实例安装的深入解析_Mysql的相关文章

Centos下的MySQL多实例安装配置

系统环境:centos 6.2 64位 内核版本: 2.6.32-220.el6.x86_64 mysql版本:5.1.62 一,MySQL多实例介绍及MySQL多实例的特点 1.什么是MySQL多实例? MySQL多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307,3308),运行多个MySQL服务进程,通过不同的socket监听不同的服务端口来提供各自的服务. 2.MySQL多实例的特点有以下几点: 1).有效利用服务器资源,当单个服务器资源有剩余时,可以充分利用剩余的资源

mysql 8.0 安装配置方法教程_Mysql

一.安装mysql yum源 从官网http://dev.mysql.com/downloads/repo/yum/下载mysql最新的yum源的rpm安装包 wget http://repo.mysql.com//mysql57-community-release-el6-9.noarch.rpm 使用yum安装rpm包 yum install mysql57-community-release-el6-9.noarch.rpm 检测mysql yum源 yum repolist enable

详解MySQL数据库的安装与密码配置_Mysql

MySQL是由MySQL AB公司开发,后由Oracle公司收购 MySQL是一个关系型数据库管理系统 分为社区版和企业版 MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言,  由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,搭配 PHP 和 Apache 可组成良好的开发环境  安装方式: 安装方式MSI 安装和ZIP安装 Typical:典型安装      建议使用 Custom:自定义安装 Complete:完全安装 一.下载MySQL软件 1.去oracl

centos下的mysql单实例安装

系统环境:centos 6.2 64位 内核版本: 2.6.32-220.el6.x86_64 mysql版本:5.1.62 1.1首先创建mysql用户和组: [root@cqb ~]# groupadd mysql [root@cqb ~]# useradd -s /sbin/nologin -g mysql -M mysql 1.2下载mysql源码包后解压安装. [root@cqb ~]# wget http://mysql.ntu.edu.tw/Downloads/MySQL-5.1/

mysql多实例安装

多实例部署优势: 充分利用系统资源 mysql为单进程多线程的模型,它对多核的利用不是很好,无法充分利用系统资源.所以服务器上可以考虑多实例部署 资源隔离 如果不同的业务,部署在一个实例里,那么连接数.缓存等资源都是共享的.如果某个业务压力很大的话,很可能影响另一个业务的正常运行 业务.模块隔离 例如,A业务需要支持移动端,那么久需要升级数据库以支持utf8mb4字符集.而B业务则不需要.如果A.B是部署在一起的话,升级数据库必然会对B的业务造成影响 1 部署好mysql软件 [root@mil

MySQL查询优化之explain的深入解析_Mysql

在分析查询性能时,考虑EXPLAIN关键字同样很管用.EXPLAIN关键字一般放在SELECT查询语句的前面,用于描述MySQL如何执行查询操作.以及MySQL成功返回结果集需要执行的行数.explain 可以帮助我们分析 select 语句,让我们知道查询效率低下的原因,从而改进我们查询,让查询优化器能够更好的工作. 一.MySQL 查询优化器是如何工作的MySQL 查询优化器有几个目标,但是其中最主要的目标是尽可能地使用索引,并且使用最严格的索引来消除尽可能多的数据行.最终目标是提交 SEL

mysql 5.5 安装配置简单教程_Mysql

下面的是MySQL安装的过程,用的可执行文件安装的,详细说明了一下! 1.打开下载的mysql安装文件mysql-5.0.27-win32.zip,双击解压缩,运行"setup.exe" 2.mysql安装向导启动,按"Next"继续 选择安装类型,有"Typical(默认)"."Complete(完全)"."Custom(用户自定义)"三个选项,我们选择"Custom",有更多的选项,

MySQL 绿色版安装方法图文教程_Mysql

一.下载,这里使用绿色解压缩版 http://mirror.services.wisc.edu/mysql/Downloads/MySQL-5.1/mysql-noinstall-5.1.32-win32.zip 二.配置MySQL的参数 1.解压缩绿色版软件到D:\AppServ\MySQL设置系统环境变量, 在Path中添加 D:\AppServ\MySQL\bin;  2.修改D:\AppServ\MySQL\my-small.ini文件内容,添加红色内容 [client]#passwor

基于mysql查询语句的使用详解_Mysql

1> 查询数据表除了前三条以外的数据.    起初我想到的是这条语句    SELECT * FROM admin WHERE userid NOT IN (SELECT userid FROM admin ORDER BY userid LIMIT 3) ORDER BY userid DESC    但是运行的时候会报 This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery 这个的意思是表示子