设为首页 加入收藏

TOP

Arch Linux下源码编译安装MySQL 5.7.11
2017-05-27 17:35:48 】 浏览:9199
Tags:Arch Linux 源码 编译 安装 MySQL 5.7.11

MySQL版本:5.7.11


源码编译安装并使用systemd管理


由于种种原因,现住主流的linux发行版默认的mysql实现都采取了MariaDB


大致安装过程


# 下载源代码(源码有两个版本,一个是附带boost的,一个是不附带boost的,建议下载前者)
$ wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.11.tar.gz


# 此时目录
$ pwd
/usr/local


# 增加用户组和用户
$ groupadd mysql
$ useradd -r -g mysql -s /bin/false mysql


# 解压缩
$ tar -zxvf mysql-boost-5.7.11.tar.gz


# 进入目录
$ cd mysql-boost-5.7.11
$ mkdir build
$ cd build


# configure the distribution
# 此处仅修改字符编码,WITH_BOOST是知道boost目录(下载包附带的),WITH_SYSTEMD是安装systemd支持脚本
# -DWITH_SYSTEMD=bool
# Whether to enable installation of systemd support files. By default, this option is disabled. When enabled,
# systemd support files are installed, and scripts such as mysqld_safe and the System V initialization script
# are not installed. On platforms where systemd is not available, enabling WITH_SYSTEMD results in an error
# from CMake.
$ cmake .. -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=/usr/local/mysql-5.7.11/boost -DWITH_SYSTEMD=ON


# 编译安装
$ make -j 4 && make install


# 进入目录
$ cd /usr/local/mysql


# 更改权限
$ chown -R mysql .
$ chgrp -R mysql .


# 初始化(此处会随机生成一个root用户的密码,要记录)
$ bin/mysqld --initialize --user=mysql


# SSH连接
$ bin/mysql_ssl_rsa_setup


$ chown -R root .
$ chown -R mysql data


# 复制当前目录下的mysqld.service到/usr/lib/systemd/system
$ cp ./mysqld.service /usr/lib/systemd/system/


# systemd启动mysql
$ systemctl start mysqld
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.


# 查看错误原因(自己挑重点看,大致原因是找不到/var/run/mysqld这个目录)
$ journalctl -xe
Apr 11 15:08:07 localhost mysqld[15304]: 2016-04-11T07:08:07.435947Z 0 [ERROR] /usr/local/mysql/bin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2 - No such file or directo
Apr 11 15:08:07 localhost mysqld[15304]: 2016-04-11T07:08:07.435959Z 0 [ERROR] Can't start server: can't create PID file: No such file or directory


# 新建一个
$ mkdir /var/run/mysqld


# 更改权限
$ chown -R mysql /var/run/mysqld


# 启动和开机启动
$ systemctl start mysqld
$ systemctl enable mysqld


# 使用mysql(密码为mysql初始化时自动生成的)
$ ./bin/mysql -uroot -p


相关链接


MySQL源码安装文档:
http://dev.mysql.com/doc/refman/5.7/en/installing-source-distribution.html


MySQL文档cmake选项:
http://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html



# 第一次进入mysql是要求更改密码的
mysql> ALTER USER USER() IDENTIFIED BY '123456';


# 授权root用户,任意主机远程连接
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;


# 建立链接,方便使用(可以修改profile文件的PATH环境变量)
$ ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql


# mysqld.pid文件所在目录,/var/run/mysqld在每次系统重启的时候都会自动删除,导致每次重启系统,自动启动失败
# 方案:每次系统启动的时候,自动建立文件夹
# 修改~/.bash_profile文件,添加下面内容
# MYSQLD_DIR=/var/run/mysqld
# if [ ! -d "$MYSQLD_DIR" ]; then
#    mkdir "$MYSQLD_DIR"
#    chown -R mysql:mysql "$MYSQLD_DIR"
# fi


$ vim ~/.bash_profile


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇MySQL数据库中文变问号'???&#.. 下一篇MySQL高可用方案MHA在线切换的步..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目