mysql的源码编译

来源:互联网 发布:没网能看电视的软件 编辑:程序博客网 时间:2024/06/05 11:33
mysql源码安装
一、环境准备:
系统环境     rhet6.5
实验环境     iptables和selinux为disabled

二、所需的源码包:
  mysql-5.6.12.tar.gz

三、准备工作(以下Linux命令均在su到root用户操作):
1、新增mysql用户组
groupadd mysql
2、新增mysql用户
useradd -r -g mysql mysql
3、新建数据库执行文件目录(mysql程序安装目录)
mkdir -p /usr/local/mysql
4、新建数据库数据文件目录
mkdir -p /home/mysql
mkdir -p /home/mysql/data
mkdir -p /home/mysql/logs
mkdir -p /home/mysql/temp
注意:上面的第3及第4是为了以后将MySQL的数据文件与执行程序文件分离,如果你打算设置到不同的路径,注意修改对应的执行命令和数据库初始化脚本!
5、编辑PATH搜索路径
vi /etc/profile +
在profile文件末尾增加两行
PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
export PATH
使PATH搜索路径立即生效:
source /etc/profile
6、安装编译源码所需的工具和库(如果不能在线安装,需要提前配置好本地源,本地源配置方法度娘吧,以后有时间)
yum -y install  gcc-c++ ncurses-devel cmake make perl

四、开始编译安装mysql-5.6.12
1、解压缩源码包
tar -zxvf mysql-5.6.12.tar.gz
2、进入解压缩源码目录
cd mysql-5.6.12
3、使用cmake源码安装mysql(如果你打算安装到不同的路径,注意修改下面语句中/usr/local/mysql这个路径!)
```
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/home/mysql/data \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306    \
-DENABLE_DOWNLOADS=1
```
4、cmake结束后开始编译源码,。
 make
5、安装编译好的程序
make install
注意:如果需要重装mysql,在/usr/local/src/mysql-5.6.12在执行下make install就可以了,不需要再cmake和make

6、修改目录拥有者
chown -Rf mysql:mysql /usr/local/mysql
chown -Rf mysql:mysql /home/mysql

7、进入mysql执行程序的安装路径
cd /usr/local/mysql

8、执行初始化配置脚本,创建系统自带的数据库和表(/usr/local/mysql路径)
scripts/mysql_install_db --user=mysql --datadir=/home/mysql/data
初始化脚本在/usr/local/mysql/下生成了配置文件my.cnf,需要更改该配置文件的所有者:
 chown -Rf mysql:mysql /usr/local/mysql

注意:
(1)Tips:在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索mysql程序目录下是否有my.cnf";
(2)需要注意CentOS 6.4版操作系统的最小安装完成后,即使没有安装mysql,在/etc目录下也会存在一个my.cnf文件,建议将此文件更名为其他的名字,否则该文件会干扰源码安装的MySQL的正确配置,造成无法启动。修改/etc/my.cnf操作如下:

mv /etc/my.cnf /etc/my.cnf.bak
当然也可以删除掉/etc/my.cnf这个文件:
rm /etc/my.cnf
9、复制服务启动脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

10、启动MySQL服务
service mysql start

11、设置开机自动启动服务
chkconfig mysql on

12、登录并修改MySQL用户root的密码
mysql -u root
mysql> use mysql;
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456";
mysql> update user set Password = password('123456') where User='root';
mysql> flush privileges;
mysql> exit;

13、检测下上一步MySQL用户root密码是否生效:
```
[root@server2 mysql]# mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)没有密码无法登录,说明密码修改成功了。
[root@server2 mysql]# mysql -u root -p
Enter password: ——这里提示时输入你设置的mysql root帐号密码
#登录成功有如下提示:
mysql>showdatabases;
```

14、安全初始化:
[root@yimiju ~]# /usr/local/mysql/bin/mysql_secure_installation

Enter current password for root (enter for none):输入密码
OK, successfully used password, moving on...
Change the root password? [Y/n] n        ---------------这里输入n
 ... skipping.
Remove anonymous users? [Y/n] Y            ---------------这里输入Y
 ... Success!

Disallow root login remotely? [Y/n] n            ---------------这里输入n
 ... skipping.

Remove test database and access to it? [Y/n] Y            ---------------这里输入Y

Reload privilege tables now? [Y/n] Y            ---------------这里输入Y
 ... Success!
 ```

17、重启服务器,检测mysql是否能开机自动启动

[root@yimiju ~]# reboot

原创粉丝点击