首页 > 代码库 > 源码编译MYSQL遇到的几个小问题
源码编译MYSQL遇到的几个小问题
闲来无聊,顺手练习一下好久没碰过的MYSQL,于是决定源码编译安装MYSQL-5.7.11,练习不打紧,出了好多问题,于是乎赶紧在这里总结一下:
先下载的编译器:cmake-2.8.12.2-4.el6.x86_64.rpm MYSQL源码包:mysql-boost-5.7.11.tar.gz
接下来进行配置,编译,安装三部曲:(区别是我把数据目录单独放在了另外一张虚拟硬盘上-DMYSQL_DATADIR=/mydata/data -DMYSQL_UNIX_DATA=http://www.mamicode.com/mydata/data/mysql.sock,以实现数据和安装路径分开,并且套接字目录也定义在了数据的目录上)
第一个问题:虚拟机给的内存不够(850M),当时编译的特别慢,基本上编译到70%时就过不去了,所以解决的办法是加大内存至3000M,同时给虚拟机添加一个CPU,以加快编译速度。
第二个问题:本以为这样就能顺利的进行编译呢,可是编译的时候还是没有过去,一致卡在70%,为什么?小伙伴门,你们猜到原因了吗?
答案是:我的磁盘内存不够,用完了,使用df -h以查看,我去,磁盘已经撑爆了,所以接下来赶紧进行磁盘拉伸,直接拉到15G就差不多了,拉伸时注意一点就是当把lv扩大15G时,一定要记得把文件系统扩展一下(resize2fs /dev/Vogroup/lv_root),要不然文件系统还是没有得到拉伸的目的。
第三个问题:就这样我静静的等待安装成功,嗯亨,最后确实成功了哈。哈哈,然后就是新建mysql用户及mysql用户组,并且将/usr/local/mysql里面文件全部更改为mysql.mysdl所属用户和组,然后初始化mysql数据库,使得建立mysql数据库,用来存放mysql数据库的元数据的,就和文件系统的元数据存放在元数据区(innode)一样,而information_schema数据库是用来存放数据库运行时产生的一些数据的。
初始化结束,就是在数据目录中/mydata/data里面的文件更改为chown mysql.mysql . -R 全部更改为mysql用户和组。于是最后启动数据服务器(/etc/init.d/mysqld start(之前的环境变量已经改好了哦,并且从supports-file里将启动脚本mysql.server和my.cnf 分别拷贝到/etc/init.d/mysqld和/etc/my.cnf))服务是启动了,可是问题出现了:
无法通过在本机客户端通过套接字连接至mysqld服务器,报错为:Error: Can‘t connect to local MySQL server through socket ‘/mydata/data‘ (111)
此问题困扰我将近半个多小时,于是乎各种百度阿,此刻的我好怀念google阿,皇天不复有心人,我还是找到答案了;
问题就是:我在主配置文件中没有给[mysqld]和[client]定义出套接字的地址,而mysql默认的地址中是/var/lib/mysql中,于是赶紧的:[client] socket=/mydata/data/mysql.sock [mysqld] socket=/mydata/data/mysql.sock中再次重起mysqld服务器,此时在/mydata/data/里面也有套接字生成,并且也能通过本地mysql客户端连接进入mysqld主服务器中。
本文出自 “Foreverlinux” 博客,转载请与作者联系!
源码编译MYSQL遇到的几个小问题