MySQL源码安装

渡边不斯凯
Aug 22, 2017 · 6 min read

许多时候,安装MySQL是一项简单的任务,比如,RPM包安装。但是如何安装一台更加流畅运行、性能高要求的MySQL则需要其他的安装方式。比如,二进制包或源码包。

下载源码包可以访问以下地址,(选择不同操作系统不同版本安装包):http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36.tar.gz

接下来进行安装步骤:

1、使用root用户登录系统,添加mysql用户和组,将数据库安装此用户下:

[root@kai ~]# groupadd mysql
[root@kai ~]# useradd -g mysql mysql

2、创建数据库和数据文件相关目录:

[root@kai local]# mkdir -p /usr/local/mysql
[root@kai local]# chown -R mysql.mysql /usr/local/mysql

[root@kai /]# mkdir -p /data/comall/file
[root@kai /]# mkdir -p /data/comall/log
[root@kai /]# chown -R mysql.mysql /data

2、解压源码包,进入解压目录:

[root@kai tmp]# gunzip < mysql-5.6.36.tar.gz | tar -xvf -

3、开始用cmake编译,将mysql安装到指定的目录下,比如/usr/local/mysql,如果系统中未安装cmake可以使用yum来安装:

[root@kai ~]# yum -y install cmak

开始编译:

[root@kai ~]# cd /tmp/mysql-5.6.36
[root@kai mysql-5.6.36]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/comall/file -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1


  • 参数说明:
  • -DCMAKE_INSTALL_PREFIX=/usr/local/mysql //指定安装目录
    -DINSTALL_DATADIR=/data/comall/data //指定数据存放目录
    -DSYSCONFDIR=/etc //指定配置文件my.cnf目录
    -DDEFAULT_CHARSET=utf8 //指定字符集
    -DDEFAULT_COLLATION=utf8_general_ci //指定校验字符
    -DEXTRA_CHARSETS=all //安装所有扩展字符集
    -DENABLED_LOCAL_INFILE=1 //允许从本地导入数据

编译以以下三条记录结束,开始make和make install:

— Configuring done
— Generating done
— Build files have been written to: /tmp/mysql-5.6.36
[root@kai mysql-5.6.36]# make && make install
Scanning dependencies of target INFO_BIN

4、去修改my.cnf文件,需要注意的是根据版本支持的参数而定义,坑:在client中不能指定pid_file,其他一些不支持参数参考error.log中启动的报错信息。

5、创建系统数据库和系统表 ,将数据库和表用户指定为mysql:

[root@kai mysql]# cd /usr/local/mysql
[root@kai mysql]# bin/mysql_install_db — user=mysql — datadir=/data/comall/file/

6、使用mysql.server启动mysql:

[root@kai mysql]# /usr/local/mysql/support-files/mysql.server start
Starting MySQL…[确定]

7、修改root密码:

root@kai mysql]# /usr/local/mysql/bin/mysqladmin -u root password ‘mysql’
Warning: Using a password on the command line interface can be insecure.

8、登录并创建用户账号:

[root@localhost][(none)]> GRANT ALL PRIVILEGES ON *.* TO ‘root’@’192.168.1.%’ IDENTIFIED BY ‘mysql’ WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
[root@localhost][(none)]> GRANT SELECT ON *.* TO ‘readonly’@’192.168.1.%’ IDENTIFIED BY ‘readonly’;
Query OK, 0 rows affected (0.00 sec) //创建一个用户只读的账号

9、添加开机启动:

[root@kai mysql]# cd /usr/local/mysql/
[root@kai mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@kai mysql]# chmod 755 /etc/init.d/mysqld
[root@kai mysql]# chkconfig mysqld on

[root@kai mysql]# service mysqld stop
Shutting down MySQL.[确定]
[root@kai mysql]# service mysqld start
Starting MySQL…[确定]

--待续

)
    渡边不斯凯

    Written by

    我可能抑郁了,

    Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
    Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
    Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade