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

 更新时间:2013年06月13日 18:05:05   作者:  
本篇文章是对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&nbsp;</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&nbsp;</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

相关文章

  • MySQL复制机制原理讲解

    MySQL复制机制原理讲解

    在本篇文章中小编通过诙谐幽默的语言图文给大家讲述了MySQL复制机制的原理及相关知识点,需要的朋友们参考下。
    2019-05-05
  • mysql中insert into...select语句优化方式

    mysql中insert into...select语句优化方式

    这篇文章主要介绍了mysql中insert into...select语句优化方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教<BR>
    2024-04-04
  • Ubuntu系统安装与配置MySQL

    Ubuntu系统安装与配置MySQL

    这篇文章介绍了Ubuntu系统安装与配置MySQL的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • mysql和oracle默认排序的方法 - 不指定order by

    mysql和oracle默认排序的方法 - 不指定order by

    这篇文章主要介绍了mysql和oracle默认排序的方法 - 不指定order by。具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • MySQL的索引原理以及查询优化详解

    MySQL的索引原理以及查询优化详解

    这篇文章主要为大家介绍了MySQL的索引原理以及查询优化,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • MySQL 不等于的三种使用及区别

    MySQL 不等于的三种使用及区别

    MySQL中常用到判断符号,而不等于是比较常用的符号,不等于主要是三种,本文主要介绍了三种的使用及区别,感兴趣的同学可以了解一下
    2021-06-06
  • MySQL存储文本和图片的方法

    MySQL存储文本和图片的方法

    今天小编就为大家分享一篇关于MySQL存储文本和图片的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • 解决mysql创建数据库后出现:Access denied for user ''root''@''%'' to database ''xxx''的问题

    解决mysql创建数据库后出现:Access denied for user ''root''@''%'' to dat

    这篇文章主要给大家介绍了如何解决mysql在创建数据库后出现:Access denied for user 'root'@'%' to database 'xxx'的错误提示,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-05-05
  • mysql触发器原理与用法实例分析

    mysql触发器原理与用法实例分析

    这篇文章主要介绍了mysql触发器原理与用法,结合实例形式分析了mysql触发器基本概念、原理、用法及操作注意事项,需要的朋友可以参考下
    2020-04-04
  • mysql查询语句中用户变量的使用代码解析

    mysql查询语句中用户变量的使用代码解析

    这篇文章主要介绍了mysql查询语句中用户变量的使用代码解析,涉及部分代码优化的内容,通过示例向大家解析用户变量的相关问题,需要的朋友可以参考下。
    2017-10-10

最新评论