Linux 下编译安装 MySQL

相关内容:
1. Linux 下编译安装 MySQL(本篇);
2. Linux 下编译安装 PHP7;
3. Linux 下编译安装 Nginx,以及 Nginx 和 PHP7 协同工作;
4. Linux 下编译安装 Apache;

MySQL 源码安装页面地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
Linux 下编译安装 MySQL_第1张图片
Linux 下编译安装 MySQL_第2张图片
拿到链接地址(https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.26.tar.gz )后,进入终端下载源码包(注意:所有下载的文件归类到 /usr/local/src 目录。)

cd /usr/local/src
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.26.tar.gz

解压到 src

tar zxvf mysql-boost-5.7.26.tar.gz -C /usr/local/src/

在进行到下一步之前,安装一下依赖关系:

# CentOS
yum install -y gcc gcc-c++ cmake bison-devel ncurses ncurses-devel autoconf
# Ubuntu
apt-get install -y build-essential libssl-dev cmake bison libncurses5-dev autoconf

创建守护进程用户:

useradd -M -s /sbin/nologin mysql

以上准备工作完毕,接下去进入编译安装步骤。

进入解压包目录:

cd /usr/local/src/mysql-5.7.26/

创建编译后的代码保存位置:

mkdir build
cd build

注意:cmake 创建 make 需要的文件(makefile)等
-DCMAKE_INSTALL_PREFIX= 指定安装目录,方便后续管理
-DEFAULT_CHARSET= 指定默认字符集,安装后也可以自己配置

cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 \
-DWITH_BOOST=/usr/local/src/mysql-5.7.26/boost/boost_1_59_0 -DMYSQL_DATADIR=/data/mysql/data
# make 耗时较长,请耐心等待
make
make install

配置一下环境变量,在 /etc/profile.d 下创建一个 mysql 用的配置文件

vim /etc/profile.d/mysql.sh

并写入如下内容:

# 如服务器同时安装多个版本,文件夹取名追加版本号
export MYSQL_PATH=/usr/local/mysql	
export PATH=$PATH:$MYSQL_PATH/bin

保存后生效

source /etc/profile.d/mysql.sh

配置 MySQL 配置文件,在 MySQL 目录下新建一个 etc 目录并创建 my.cnf 文件

rm -rf /etc/my.cnf
mkdir /usr/local/mysql/etc
vim /usr/local/mysql/etc/my.cnf

写入如下内容并保存:

[client]

[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
character_set_filesystem=utf8
character_set_server=utf8
symbolic-links=0

log-error=/data/mysql/log/mysqld.log
pid-file=/data/mysql/run/mysqld.pid

准备初始化数据库:

  1. 创建数据仓库目录:
mkdir -p /data/mysql/data/
  1. 创建日志目录:
mkdir -p /data/mysql/log/
  1. 创建保存 PID 目录:
mkdir -p /data/mysql/run/
  1. 将 MySQL 目录权限改成 MySQL 用户:
chown -R mysql:mysql /data/mysql
  1. 初始化,注意配置文件以及目录一定要正确:
/usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/etc/my.cnf --initialize --user=mysql

配置 MySQL 自启动服务

  1. 复制启动脚本到 init.d 下
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
  1. 启动服务
/etc/init.d/mysqld start
  1. 停止服务
/etc/init.d/mysqld stop
  1. 设置开机自启动
# CentOS自动启动
chkconfig mysqld on

# Ubuntu 自动启动
systemctl enable mysqld

查看数据库状态

systemctl status mysqld
ps -ef | grep mysqld
ss -ltpn

接下去配置 root@localhost 用户

  1. 查询默认密码
grep 'root'@'localhost' /data/mysql/log/mysqld.log
# 返回如下:
A temporary password is generated for root@localhost: lshQym2PvV:E
  1. 用查询到的密码登录
# 已经设置过环境变量可以直接使用 mysql
mysql -uroot -p		
# 或完整写法
/usr/local/mysql/bin/mysql --host=localhost --user=root --password
# 返回“Enter password: ”后输入密码
  1. 修改数据库密码
mysql> ALTER USER root@localhost IDENTIFIED BY 'password';
  1. 测试执行下面语句
mysql> SELECT user,host FROM mysql.user;
一些 MySQL 基本知识
# 进入 MySQL 目录
cd /usr/local/mysql
ls		// 返回
bin  COPYING  COPYING-test  docs  etc  include  lib  man  
mysql-test  README  README-test  share  support-files
# bin 目录存放 MySQL 常用的命令工具以及一些管理工具
# docs 和 man 目录存放 帮助文档
# include 和 lib 目录存放 MySQL 依赖的一些头文件和库函数
# share 目录存放 配置文件和错误信息

# 查询 MySQL 版本号
mysql --version
mysql -V

# MySQL 帮助文档
mysql --help
设置 root 账号可以远程登录数据库(便于数据库管理软件登录)
mysql -u root -ppassword

mysql> use mysql;
mysql> update user set host = '%' where user = 'root';
mysql> FLUSH PRIVILEGES;

搞定!

你可能感兴趣的:(服务器配置,Linux,MySQL)