源码安装mysql
源码安装mysql
源码安装的mysql用起来比较舒服
下载源码包
这里提供一个路径:
https://downloads.mysql.com/archives/community/
-
注意 ,一定要选择没有任何后缀的,且只有几十M的;
-
编译mysql需要boost 下载地址
https://sourceforge.net/projects/boost/files/boost/1.59.0/ -
我的目录是这样的
[root@xingyao /home/admin]
$tree -L 2
.
├── boost
│ ├── boost_1_59_0
│ └── boost_1_59_0.tar.bz2
└── mysql
├── mysql-5.7.9
└── mysql-5.7.9.tar.gz
安装MYSQL依赖包
Mysql需要使用cmake来进行编译,所以需要安装cmake,并且5.7版本cmake版本不低于2.8
yum install -y cmake make gcc gcc-c++ bison ncurses ncurses-devel
添加mysql用户和用户组
groupadd mysql
useradd -M -s /sbin/nologin -r -g mysql mysql
创建mysql数据库存放位置并修改目录权限
mkdir -p /data/mysql/{data,log}
chown -R mysql:mysql /data/mysql
注意:生产环境中mysql的data数据目录会单独放在一块硬盘中
预编译
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/home/admin/boost/boost_1_59_0
检查执行成功没
echo $?
编译&安装
编译
make
安装
make install
修改mysql目录权限
chown -R mysql:mysql /usr/local/mysql/
生成my.cnf配置文件
备份配置文件文件
mv /etc/my.cnf{,.bak}
自行创建my.cnf配置文件
vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql #mysql安装目录
datadir=/data/mysql/data #mysql数据存放目录
port=3306 #mysql监听端口
socket=/usr/local/mysql/mysql.sock #mysql.sock文件存放目录
symbolic-links=0 #关闭mysql的符号链接
character-set-server=utf8 #指定mysql的字符集为utf8
log-error=/data/mysql/log/mysqld.log #指定mysql的错误日志存放路径
pid-file=/usr/local/mysql/mysqld.pid #mysql的pid文件存放目录
注意:所有my.cnf指定的目录mysql用户都要有读写权限。symbolic-links符号链接支持在别的目录下存放mysql的数据库文件,当我们mysql数据盘满了以后,可以启动symbolic-links=1,把mysql的数据放在别的目录下,然后链接到mysql的datadir目录下。
生成服务启动脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld #给脚本添加执行权限
添加mysqld开机自启动
chkconfig --add mysqld #把mysql添加到系统服务
chkconfig mysqld on #把mysql添加到开机自启动
chkconfig --list mysqld #查看mysql开机自启动状态
初始化数据库
如果无法初始化先启动mysql
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
启动服务
/etc/init.d/mysqld start
添加path路径:
添加mysql命令路径到path环境变量中或者把mysql命令路径软连接到path环境变量里已经存在的目录,这样我们可以在系统任意位置直接执行mysql相关命令
vim /etc/profile ##添加下面2行 在文件的结尾
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:/usr/local/mysql/bin
使修改生效
source /etc/profile
或者不执行上面的命令 软连接代替:
ln -s /usr/local/mysql/bin/* /usr/local/bin/
修改mysql密码:
mysqladmin -u root password 123456
登陆mysql
mysql -uroot -p123456
Mysql的错误日志文件(error_log)
查看mysql错误日志的定义信息
mysql> show global variables like ‘%log_error%’;
其中
log_error定义为错误日志文件路径。
log_error_verbosity:
The MySQL error log has received some attention in MySQL 5.7, with a new setting called log_error_verbosity。There are three possible values, as documented in the manual:
Verbosity Value Message Types Logged
1 Errors only
2 Errors and warnings
3 Errors, warnings, and notes (default)
更改错误日志位置可以使用log-error来设置形式如下
vi /etc/my.cnf
log-error = /data/mysql/log/mysqld.log
查看mysql错误日志:可以使用tail或grep、cat等命令查看。