编译安装mysql5.6并初始化数据库和创建系统服务

很久没编译安装过mysql了,以前一直使用自己编译的mysql5.1.68,近期出的phpMyAdmin竟然要求mysql5.5以上,索性编译安装一个5.6试试。虽然现在mysql最新版是5.7,但我还是喜欢成熟稳定的产品,做服务器嘛,一般不选用最新的版本。

首先下载mysql源码包,可以在网址:https://dev.mysql.com/downloads/mysql/ 里面去找自己想要的源码包。这里我直接下载的:https://dev.mysql.com/downloads/mysql/5.6.html#downloads 里面的源码包:https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.35.tar.gz 

 在linux下用wget下载是最方便的了。

下载以后,解压,linux服务器安装基础编译环境(包括cmake):

yum安装mysql基础编译环境 写道
yum -y install gcc gcc-c++ ncurses-devel perl cmake

 安装好基础环境后,就可以编译mysql了。

解压编译并安装mysql 写
1、解压缩
tar zxf mysql-5.6.35.tar.gz
2、进入目录
cd mysql-5.6.35
3、cmake创建make环境,注意设置所有目录为自己打算存放mysql服务器软件的路径。
cmake \
-DCMAKE_INSTALL_PREFIX=/data/server/mysql \
-DMYSQL_UNIX_ADDR=/data/server/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/server/mysql/data \
-DMYSQL_TCP_PORT=3306 \
-DENABLE_DOWNLOADS=1
4、进行编译
make
5、安装
make install

 让我们看看新安装的mysql占用多少磁盘空间:

新安装未初始化的mysql占用空间 写道
du -sh /data/server/mysql/
915M /data/server/mysql/
915MB,当初mysql5.1的版本时,占用空间250MB,而5.0版本时,占用不到100MB。不过无所谓,现在磁盘一般都大,为了mysql更好的性能,我们占用1GB的空间给这么重要的数据库软件,是值得的。
另外要说的是,编译安装的mysql其实是包括了yum安装的mysql-server,mysql-dev,mysql-client。就是说服务器、客户端和开发文件都有了。

 接下来创建mysql用户:

 useradd -d /data/server/mysql -s /sbin/nologin mysql

修改mysql整个目录所有文件的权限为mysql:

chown -R mysql:mysql /data/server/mysql

初始化mysql数据库(一定要切入mysql根目录中做,看起来初始化用了相对路径):

cd /data/server/mysql/

./scripts/mysql_install_db --defaults-file=/data/server/mysql/my.cnf --user=mysql --datadir=/data/server/mysql/data

启动mysql:

/data/server/mysql/support-files/mysql.server start

我这里发现错误:Starting MySQL.....The server quit without updating PID fil[FAILED]lib/mysql/iZ2ze3nt8kraa5ukvawf8bZ.pid

百度后发现解决方法:

/data/server/mysql/bin/mysql_upgrade -uroot

原因是因为我系统里有一个旧版本的mysql,/etc/下有my.cnf,造成我初始化表结构用了旧版的。所以这里升级一下就可以了。

当然如果发现其他问题还可以百度解决。

因为编译的时候指定了默认字符集,所以my.cnf并不需要指明,就默认用UTF-8字符集了。我们可以用自带的mysql客户端看看:

/data/server/mysql/bin/mysql -uroot 

mysql> show variables like '%character%';

+--------------------------+------------------------------------+

| Variable_name            | Value                              |

+--------------------------+------------------------------------+

| character_set_client     | utf8                               |

| character_set_connection | utf8                               |

| character_set_database   | utf8                               |

| character_set_filesystem | binary                             |

| character_set_results    | utf8                               |

| character_set_server     | utf8                               |

| character_set_system     | utf8                               |

| character_sets_dir       | /data/server/mysql/share/charsets/ |

+--------------------------+------------------------------------+

8 rows in set (0.00 sec)

mysql> show variables like'%collation%';  

+----------------------+-----------------+

| Variable_name        | Value           |

+----------------------+-----------------+

| collation_connection | utf8_general_ci |

| collation_database   | utf8_general_ci |

| collation_server     | utf8_general_ci |

+----------------------+-----------------+

3 rows in set (0.00 sec)

这里可看到,都是utf8。

为了安全,给mysql的root用户设置一个密码:

/data/server/mysql/bin/mysqladmin -uroot password "newpassword"

如果已经设置过密码了,要修改密码,则是使用如下方式:

/data/server/mysql/bin/mysqladmin -uroot -poldpassword password newpassword

如果编译安装的mysql想要拷贝到别的地方使用,只需要将整个mysql目录拷贝(mysql/data目录可以暂且移动到别处),放到/data/server/里面,修改mysql目录递归权限为mysql,然后创建mysql用户,初始化mysql数据库即可使用。

最后mysql目录占用了1.1GB空间。

猜你喜欢

转载自canlynet.iteye.com/blog/2354937