到mysql官网下载自己需要的版本,我这里以mysql-5.6.13.tar.gz为例。
创建mysql用户:useradd -r mysql
安装依赖包:
yum -y install gcc gcc-c++ ncurses-devel cmake
编译有一个warning:Bison executable not found in PATH(可以继续安装不影响使用)
可以通过yum -y install bison-devel bison
tar xf mysql-5.6.13.tar.gz,进入解压后的目录进行编译(可以将编译内容作为一个shell脚本执行,也方便下次编译):
#!/bin/bash
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DENABLED_LOCAL_INFILE=1 \
-DSYSCONFDIR=/usr/local/mysql/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306
make && make install
mkdir /usr/local/mysql/etc
mkdir /usr/local/mysql/log
chown mysql.mysql /usr/local/mysql -R
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
部分编译参数解释:
DCMAKE_INSTALL_PREFIX /usr/local/mysql 安装路径
DEFAULT_CHARSET latin1 拉丁 默认字符集
DEFAULT_COLLATION latin1_swedish_ci 指定服务器默认的校对规则(排序规则)
ENABLED_LOCAL_INFILE OFF 是否开启内部加载外部文件功能 默认off 1代表开启0代表关闭
* MYSQL_DATADIR 数据文件目录
* SYSCONFDIR 初始化参数文件目录(主配置文件路径(默认优先去/etc目录去找))
* MYSQL_TCP_PORT 服务端口号,默认3306
* MYSQL_UNIX_ADDR socket文件路径,默认/tmp/mysql.sock
* WITHOUT_xxx_STORAGE_ENGINE 指定不编译的存储引擎
* WITH_xxx_STORAGE_ENGINE 指定静态编译到mysql的存储引擎,MyISAM,MERGE,MEMBER以及CSV四种引擎默认即被编译至服务器,不需要特别指定。
* WITH_EXTRA_CHARSETS 扩展字符集
-DWITH_PARTITION_STORAGE_ENGINE=1 支持分区
编写配置文件:
mysql默认读取/etc/my.cnf ,没有的话再到安装配置目录下进行读取,可以直接修改/etc/my.cnf,也可以在删除/etc/my.cnf,然后再自己设定的配置目录下编写my.cnf,我配置目录是/usr/local/mysql/etc,安装不会产生这个目录,需要自己进行创建,mysql的安装目录也会产生一个my.cnf,生效的优先级是:/etc/my.cnf ==> /usr/local/mysql/my.cnf ==> /usr/local/mysql/etc/my.cnf,下面是基本的配置信息,其他选项可以自己按需要进行添加
[mysqld_safe]
logs-error = /usr/local/mysql/log/mysql-err.logs
[mysqld]
user=mysql
socket = /tmp/mysql.sock
port = 3306
basedir = /usr/local/mysql
pid-file = /usr/local/mysql/mysqld.pid
datadir = /usr/local/mysql/data
初始化数据库(安装默认的库表):
cd /usr/local/mysql/scripts
./mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
--no-defaults:不要从任何的配置文件中读取相应的参数,忽略掉mysql安装过程中的默认配置,如创建默认用户并设置默认密码等,可以视情况决定是否使用这个参数
启动数据库:
service mysql start
可能出现的错误:
Starting MySQL............... ERROR! The server quit without updating PID file (/usr/local/mysql/mysqld.pid)
1.权限问题:chown mysql.mysql /usr/local/mysql -R
2.配置文件书写错误,重复检查一遍,特别是路径;或者默认的配置文件没有删除或修改,自己编写的配置文件没有生效;检查配置文件中的目录是否都存在
3.查看错误日志,根据日志报错进行问题解决
检查数据库端口是否启动:
netstat -tnpl|grep 3306
启动成功默认是无密码的,可以直接mysql回车进入数据库,如果提示sock文件问题,找到自己数据库的sock文件位置,通过-S指定进入sock进入数据库,如:mysql -S /tmp/mysql.sock,也可以创建链接文件到系统提示的位置。
欢迎交流,如果有疑问或错误的话,请在下方评论区撰写,我会尽快回复~