设为首页 收藏本站
查看: 631|回复: 0

[经验分享] centos从源代码安装mysql

[复制链接]

尚未签到

发表于 2016-5-10 08:04:42 | 显示全部楼层 |阅读模式
先备忘着,后续再补充。

卸载OpenJDK:
1、http://www.cnblogs.com/zsxfbj/archive/2010/09/22/1833181.html
2、http://blog.csdn.net/cyq1984/article/details/5754958

参考url:
1、http://crazyming.blog.iyunv.com/1048571/510659
注:该链接内容有一处错误,【utf8-general_ci】应该是【utf8_general_ci】
2、http://veryi.com/w/509.html
3、http://www.pc-pub.com/article-961-1.html
4、http://xfshean.blog.163.com/blog/static/602065662011101101653926/
5、http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html

一、先下载cmake
1、wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
2、tar xvf cmake-2.8.4.tar.gz
3、cd cmake-2.8.4
4、./configure
5、make
6、make install

二、进入mysql安装包所在目录,执行命令
1、CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti"
2、开始用cmake编译
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.5/ \
-DMYSQL_DATADIR=/var/mysql \
-DMYSQL_UNIX_ADDR=/var/mysql/mysqld.sock \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_TCP_PORT=3306 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_UNIX_ADDR=/var/mysql/mysql.sock \
-DMYSQL_USER=mysql \
-DWITH_DEBUG=0

如果出现以下警告:
CMake Warning: The variable, 'MYSQL_USER', specified manually, was not used during the generation.
需要把预编译里面的MYSQL_USER去掉再编译

3、make
注:如果用nohup make则所有输出会到同目录下的nohup.out文件
4、make install

三、安装完毕,初始化数据库,报找不到mysql_print_defaults文件,结果报错。
1、应该在my.cnf文件的【mysqld】一节,加上basedir和datadir定义
2、为mysql.mysql用户添加/var/mysql目录和/usr/local/mysql5.5/data的所有权
3、初始化数据命令:
./mysql_install_db --user=mysql --basedir=/usr/local/mysql5.5 --datadir=/var/mysql --defaults-file=/etc/my.cnf

在my.cnf里使innodb有效,启动时发生如下错误
120421  6:30:26  InnoDB: Operating system error number 2 in a file operation.
InnoDB: The error means the system cannot find the path specified.
InnoDB: If you are installing InnoDB, remember that you must create
InnoDB: directories yourself, InnoDB does not create them.
InnoDB: File name /var/mysql-DMYSQL_UNIX_ADDR=/var/mysql/mysqld.sock/ibdata1
貌似my.cnf配置文件有错,将-DMYSQL_UNIX_ADDR=/var/mysql/mysqld.sock注释掉
注:2012/8/29,是因为编译的时候【-DMYSQL_DATADIR=/var/mysql \】最后【\】前没有空格

2012/11/27,启动时报告错误:
InnoDB Error ib_logfile0 of different size
解决方案:将/var/mysql/下的ib_log*文件是删除

仍旧报告错误:
MySQL Plugin 'InnoDB' init function returned error.
解决方案:将/var/mysql/所有文件删除,然后再执行初始化数据命令

然后在my.cnf将innodb引擎打开,启动报错:
InnoDB: Error: data file /var/mysql/ibdata1 is of a different size
解决方案:将/var/mysql/所有文件删除,然后再执行初始化数据命令,然后启动成功

复制配置文件
cp support-files/my-huge.cnf /etc/my.cnf

复制启动脚本
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld

四、服务器启动之后,更改root口令
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;

五、允许其他ip接入
GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY "MyNewPass";

安装myql的udf,lib_mysql_xql
必须先安装libxml2,默认安装即可。
yum install libxml2

1、配置文件有错,需修改
lib_mysqludf_xql的configure文件有有错误:
      if test -f "$XML2_DIR/$i/libxml"; then
应该改为以下语句:
      if test -f "$XML2_DIR/$i/libxml/uri.h"; then

2、configure脚本
./configure --prefix=/usr/local/mysql5.5 --with-mysql=/usr/local/mysql5.5/bin/mysql_config --with-libxml2=/usr;

3、make
4、make install;
5、安装函数到mysql:/usr/local/mysql5.5/bin/mysql -u root -pxxxxxx < installdb.sql
之后.so文件会在mysql的plugin目录下生成,重启mysql就ok
6、重启之后执行xql的installdb.sql文件,在mysql数据库生成函数

安装memcached需要libevent支持,需安装libevent-devel包
然后./configure --with-libevent=/usr;
此时memcached安装在/usr/local/bin目录下。

启动:/usr/local/bin/memcached -d -m 1000 -u root -p 12000 -c 1024 -P /tmp/memcached.pid
memcached启动参数说明:
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.1.2,
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,
2.如果要结束Memcache进程,执行:
kill `cat /tmp/memcached.pid`

数据导入之后空间不够,给虚拟硬盘扩容(需virtualbox4.0版本以上)
导入时磁盘满的话,执行sql命令会返回28错误,估计应该是表示磁盘空间不足
参考:
1、http://www.lirui.name/post/202.html
2、http://hi.baidu.com/iamcyh/blog/item/37f2573f3d3120e5828b132b.html
3、http://www.21andy.com/blog/20120523/2031.html

数据导入时,需要在目标数据库上执行:
set global log_bin_trust_function_creators=1;
否则存储过程中的function可能无法导入

数据运行久了产生的bin日志,用如下方式清除
参考:
1、http://jk.aiwaly.com/wp/%E5%A6%82%E4%BD%95%E6%B8%85%E9%99%A4mysql%E7%9A%84mysql-bin%E6%97%A5%E5%BF%97-2.html

服务器ipv6不知何故被启用,用如下方式停止
参考:
1、http://www.cyberciti.biz/faq/redhat-centos-disable-ipv6-networking/
2、http://blog.sina.com.cn/s/blog_501dcd710100y3nn.html
注:执行【rmmod ipv6】时可能会报告模块被占用,不用理会,直接reboot重启系统

安装完服务,需要开放相应端口
http://os.iyunv.com/art/201003/192211.htm

更改centos服务器时间:
如下是CentOS系统使用NTP来从一个时间服务器同步
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntpdate us.pool.ntp.org
第一句是把当前时区调整为上海就是+8区,想改其他时区也可以去看看/usr/share/zoneinfo目录;
然后第二句是利用ntpdate同步标准时间.

如何在MySQL使用全局变量,有一个udf
http://www.pureftpd.org/project/mysql-udf-global-user-variables/download

建立数据库时,数据库名务必全部用字母+数字,不要用[-][_]等特殊字符

执行语句时出错:
Failed to load routine erp.f_sso_rel_user_entity_array. The table mysql.proc is missing, corrupt, or contains bad data (internal code -6)
原因:mysql安装了udf之后,有些udf会更改plugin的位置,导致之前安装的udf找不到相应的.so文件。一般在lib下的plugin目录,有些udf会安装到lib下的mysql/plugin目录,两个目录互相软链接即可解决
同样,在mysql.proc表里,该函数是存在的,但是在查询窗口执行该函数时却报告找不到,这时一般也是同样的原因:关联的.so文件找不到

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-214888-1-1.html 上篇帖子: 使用CentOS源为RHEL6.0-64bit添加glibc.i686库[附打包下载] 下篇帖子: CentOS 常用命令及快捷键整理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表