系统环境centos6.8安装mysql方式源码包,版本5.7.10
1 首先下载这两个包,下载后上传到服务器端
我放在/Data/tools目录下
2 安装依赖包
yum -y install gcc gcc-c++ ncurses ncurses-devel bison libgcrypt perl cmake
3 安装boost
tar -zxf boost_1_59_0.tar.gz #解压
mv boost_1_59_0 /usr/local/boost #把解压后的文件夹移到指定目录
4 安装mysql
useradd -M -s /sbin/nologin mysql #设置一个不可登陆的用户
tar -zxf mysql-5.7.10.tar.gz #解压mysql
cd mysql-5.7.10 #进入目录
#检测编译
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_USER=mysql \
-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 \
-DENABLE_DOWNLOADS=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost
然后安装mysql
make && make install
5 设置启动脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld #给予执行权限
6 初始化变量
cd /usr/local/mysql/
bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
7 配置my.cnf (注意 这里安装的是5.7.10版本,最新的5.7.20版本和这里的配置方法不同,具体下次博客写)
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
vi /etc/my.cnf
在[mysqld]后面加入如下内容
#skip-grant-tables=1 # 忘记密码时需要
socket=/var/lib/mysql/mysql.sock # 指定socket文件位置
log-error=/var/log/mysql/mysql_error.log # 指定错误日志位置
init-connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
[client]
socket=/var/lib/mysql/mysql.sock
default-character-set=utf8
记得最后一行代码记得注释掉,不然下面的安装会报错
8 创建一个日志目录
mkdir -p /var/log/mysql
/etc/init.d/mysqld start
9登陆mysql
yum -y install mysql #安装客户端
/etc/init.d/mysqld start
开发mysql后查看服务是否正常运行
ps aux | grep mysql #如下图就是正常的
设置mysql密码
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
打完这条命令后会报错,具体因为什么我也不知道,但是刷新就好了。
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
继续设置mysql密码
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('Hqss20170517');
Query OK, 0 rows affected, 1 warning (0.00 sec)
给root权限
mysql> grant all on *.* to root@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
刷新退出
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> \q
此时已经安装完成mysql
点一杯星巴克庆祝一下