Mysql入门基于mysql多实例安装的深入解析
《Mysql入门基于mysql多实例安装的深入解析》要点: MYSQL实例相信大多数人都遇到过多实例安装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,sans-serif; FONT-SIZE: 14px"><SPAN style="LINE-HEIGHT: 22px; FONT-FAMILY: Verdana,sans-serif; FONT-SIZE: 14px">--defaults-file=/usr/local/mysql/data_3308/my.cnf?</SPAN><BR style="LINE-HEIGHT: 22px; FONT-FAMILY: Verdana,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,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实例这里启动了三个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 编程之家PHP培训学院每天发布《Mysql入门基于mysql多实例安装的深入解析》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |