您的位置:首页 > 运维架构 > Linux

虚拟机linux上源码安装两个mysql的一些问题。

2016-10-20 09:11 363 查看
面试的面试官问是否搭过主从复制环境,我说就一台电脑,搭不起来(网络端口什么的都不清楚,完全不知道可以开不同的端口,丢脸丢大发了)。所以昨天在linux虚拟机上安装了两个mysql,结果出现好多问题,记录一下。


不像windows下安装只要下一步下一步就行,源码安装就是将代码编译链接后生成可执行文件,所以下载了源码文件后需要编译。编译需要编译器(类似vs? vc吧),linux下为gcc、g++。还有其他的一些工具,网上一搜一大片,不再赘述。

之后就按照网上说的,先cmake设置一些变量(如安装路径,选择一些存储引擎等),这一步应该是生成了makefile文件。

make按照makefile文件进行编译,make install按照makefile进行链接生成可执行文件。把权限改一改,之后问题就不断出现。

第一个mysql安装在/usr/local/mysql1中,先初始化数据库,然后修改my.cnf文件(没有拷贝到/etc/my.cnf中,因为第二个也会先搜索这个文件,然后再搜索basedir下的my.cnf),包括datadir,basedir,port等。为了防止和第二个mysql冲突,我把socket也改了(虽然我都不知道这是干啥的,看网上改自己也改了)。

把basedir/bin目录加入到/etc/profile文件中(可以直接用mysql,mysqldump等工具),然后把support-files/mysql.server拷贝到/etc/init.d/mysql1(可以直接service mysql start|stop等操作了)。

mysql -uroot -p的时候总是说无法通过/tmp/mysql.sock连接数据库,上网百度后,改了my.cnf中mysql,client中的socket配置,还是连不上。最后用mysql -uroot -S /tmp/mysql1.sock才能连上(为什么改配置文件中的socket不起作用?)

第二个mysql安装在/usr/local/mysql2中,my.cnf中把datadir,basedir改了,端口改在3305上,socket改为/tmp/mysql2.sock。其他同mysql1.

结果启动mysql2的时候发现总是报错,out of memory什么的。我看内存共有1G,用了700m,怎么会内存不够呢。后来发现我装的mysql版本5.6.14运行起来就占400多兆,把innodb_buffer_pool_size和key_buffer_size等参数全改小了还是不好使,最后加了下面三句就好了

performance_schema_max_table_instances=400

table_definition_cache=400

table_open_cache=256

mysql内存瞬间降到了60M。

这回再启动mysql2应该没问题了,结果


启动MySql提示:The server quit without updating PID file(…)失败,心好累。

网上说的改了都不好用,看了看错误日志文件,把/var/lock/subsys下有关mysql的全删了,结果可以运行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: