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

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

2015-08-04 09:35 861 查看
1,安装库

phpha@asus:~/lamp$ sudo apt-get install build-essential libncurses5-dev cmake <!--?xml version="1.0" encoding="UTF-8" standalone="no"?--><span style="font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; font-size: 14px;">bison gcc gcc-c++ ncurses-devel</span>
<span style="font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; font-size: 14px;">
</span>
<span style="font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; font-size: 14px;">/*注意,在后面的bison gcc gcc-c++,ncurses-devel这几个东西不装的话cmake会报错</span>


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=/etc/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就行。

最后大功告成!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: