您的位置:首页 > 运维架构 > Linux

CentOS 7 源码编译安装MySQL 5.7.20

2017-11-21 17:21 555 查看
一、添加用户和组1. 进入root:
su
2. 添加组:
groupadd mysql
3. 添加用户:
useradd -r -g mysql -s /bin/false mysql
二、安装1. 首先到MySQL官网下载最新版的MySQL 5.7.14,进入http://dev.mysql.com/downloads/mysql/,选择Source Code下的Generic Linux。2. 解压
tar zxvf mysql-5.7.20.tar.gz
3. 安装MySQL所需要的工具:(1) CMake,一个跨平台的安装(编译)工具;(2) gcc-c++, C++编译器;(3) Boost库,C++语言标准库的扩展库(这里很可能会出现坑);(4) perl,一种编程序言;(5) bison, 一个语法分析器生成器;(6) git,版本控制工具;(7) curses,图形函数库。
yum install cmake gcc-c++ perl-Data-Dumper bison git ncurses-devel
4. 进入解压完的mysql-5.7.20目录,编译源码并生成makefile。(1) 如果你的系统安装了Boost-1.59库,并且设置了环境变量,那么执行:
cmake .
(2) 如果你的系统安装了boost-1.59库,那么执行:
cmake . -DWITH_BOOST=path of boost
(3 如果系统提示Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH),说明cmake的这两个参数的值不对,那么你在上面的基础上加上两个参数:
-DCURSES_LIBRARY=/usr/lib/libncurses.so -DCURSES_INCLUDE_PATH=/usr/include
5. 编译:
make
6. 安装:
make install
MySQL将会安装到/usr/local/mysql目录。7. 进入安装目录:
cd /usr/local/mysql
8. 创建data目录:
mkdir -m 777 data
9. 创建MySQL配置文件并进行配置:
vi /etc/my.cnf
进入编辑器之后修改以下几行(注意去掉#号):
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
socket = /usr/local/mysql/tmp/mysql.sock  #tmp目录需要手工建立,注意权限为mysql
port = 3306
注意:[client][mysqld][mysqld_safe]的socket参数必须相同,否则可能第一次登陆失败
[root@Master mysql]# bin/mysql -uroot
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/usr/local/mysql/tmp/mysql.sock' (2)
10. 权限设置:
chown -R mysql.mysql .
11. 初始化数据库:
bin/mysqld --initialize --user=mysql
执行完这一句后mysql会分配一个初始的密码,这个密码得备份下来。继续执行:
bin/mysql_ssl_rsa_setup
12. 启动MySQL:
bin/mysqld_safe --user=mysql &
或者
/usr/local/mysql/support-files/mysql.server start
或者
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
可以使用service mysqld start | restart | status | status管理
也可以使用systemctl start | restart | status | status mysqld.service
13. 登录mysql:
bin/mysql -u root -p    #必须使用上面初始化产生的临时密码登录,如果忘记需要重新初始化
14. 修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
15. 远程登录权限:
GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'passwd2017';
FLUSH PRIVILEGES;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql CentOS 源码