红联Linux门户
Linux帮助

Ubuntu15.X和CentOS7之后-MySQL源码编译安装

发布时间:2015-08-04 15:36:37来源:blog.csdn.net/gypsaiwhu作者:gypsaiwhu

1,安装库

phpha@asus:~/lamp$ sudo apt-get install build-essential libncurses5-dev cmake 


2,准备安装目录

phpha@asus:~/lamp$ sudo groupadd mysql 
phpha@asus:~/lamp$ sudo useradd -g mysql mysql 
phpha@asus:~/lamp$ sudo mkdir -p /var/mysql/ 
phpha@asus:~/lamp$ sudo mkdir -p /var/mysql/data/ 
phpha@asus:~/lamp$ sudo mkdir -p /var/mysql/log/ 
phpha@asus:~/lamp$ sudo chmod -R 777 /var/mysql/data/ 


3,用CMAKE生成编译文件

phpha@asus:~/lamp$ tar -zxf mysql-5.6.16.tar.gz 
phpha@asus:~/lamp$ cd mysql-5.6.16 
phpha@asus:~/lamp/mysql-5.6.16$ sudo cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/var/mysql/data 


4,开始编译安装

phpha@asus:~/lamp/mysql-5.6.16$ sudo make 
phpha@asus:~/lamp/mysql-5.6.16$ sudo make install 


5,配置安装

phpha@asus:~/lamp/mysql-5.6.16$ sudo chmod +w /usr/local/mysql 
phpha@asus:~/lamp/mysql-5.6.16$ sudo chown -R mysql:mysql /usr/local/mysql 
phpha@asus:~/lamp/mysql-5.6.16$ sudo chown -R mysql:mysql /var/mysql/ 
phpha@asus:~/lamp/mysql-5.6.16$ sudo ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18 
phpha@asus:~/lamp/mysql-5.6.16$ sudo cp support-files/my-default.cnf /etc/my.cnf 
phpha@asus:~/lamp/mysql-5.6.16$ sudo cp support-files/mysql.server /etc/init.d/mysqld 
//MySQL初始化安装 
phpha@asus:~/lamp/mysql-5.6.16$ sudo /usr/local/mysql/scripts/mysql_install_db --defaults-file=/var/mysql/my.cnf --basedir=/usr/local/mysql --datadir=/var/mysql/data --user=mysql 

这里要注意的是Ubuntu15以后,启用了Systemd,所以service和chkconfig命令行都被systemctl取代了。配置方面也需要变一下。需要创建/etc/systemd/system/mysqld.service文件。如下:

[Unit] 
Description=MySQL Server 
After=network.target 
 
[Service] 
Type=forking 
ExecStart= /etc/init.d/mysqld start 
ExecReload= /etc/init.d/mysqld restart 
ExecStop=/etc/init.d/mysqld stop 
PrivateTmp=true 
 
[Install] 
WantedBy=multi-user.target 

这一步之后启用mysql不是用的service mysqld start,请注意。采用systemd之后,用的是:systemctl start mysqld.service

启用的时候会遇到/tmp/mysql.sock无法启用的问题。 即使在my.cnf里头加入socket=/tmp/mysql.sock也无效,还是因为systemd,这时候sock文件被放在:

/tmp/mysql.sock -> /tmp/systemd-private-ea86c5740e5d45e6b2e01b231e76389c-mysqld.service-e6Z4hL/tmp/mysql.sock 里头了。做一下ln就行。


最后大功告成!


Ubuntu 15.04安装配置Apache和mysql的方法:http://www.linuxdiyf.com/linux/13074.html

ubuntu15.04 qt5.4.2连接mysql:http://www.linuxdiyf.com/linux/13054.html

CentOS 7安装MySQL:http://www.linuxdiyf.com/linux/13041.html

Ubuntu15.04的MySQL数据库允许Toad远程连接:http://www.linuxdiyf.com/linux/12995.html

CentOS 7下源码安装MySQL 5.6:http://www.linuxdiyf.com/linux/12759.html