博文記錄
Centos 2019-02-15 11:49:40 2263 4

Linux/CentOS 安装 MySQL(RPM 安装、编译安装)

目前最常用的 MySQL 安装方法也就是采用 Yum 安装 RPM 包,或者编译安装。这里将记录关于在 CentOS 上安装 MySQL 历史版本的方法。

RPM 安装

这里使用 CentOS 系统,使用 Yum 快捷安装解决依赖

添加 RPM 源

官方 yum 源历史版本获取地址

http://repo.mysql.com/yum/

最新版 yum 源获取地址

http://dev.mysql.com/downloads/repo/yum/ 

下载源 1

wget http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql57-community-release-el7-10.noarch.rpm

下载源 2

wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
# 可以替换其中的发行版本序号下载指定的版本
wget http://dev.mysql.com/get/mysqlXX-community-release-elXX-XX.noarch.rpm

安装源

安装 RPM 源

yum localinstall mysql57-community-release-el7-10.noarch.rpm

验证是否安装成功

yum repolist enabled | grep "mysql.*-community.*"

 

卸载 RPM 源

rpm -qa|grep mysql
rpm -e mysql57-community-release-el7-10.noarch

更换默认安装版本

MySQL 官方默认源采用最新版本,可以通过修改 RPM 文件来实现。

官网文档参照

https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/#repo-qg-yum-select-series

推荐编辑文件来指定版本

vi /etc/yum.repos.d/mysql-community.repo

 

安装 MySQL

yum install mysql-community-server

启动 MySQL

systemctl start mysqld

开机自启

# 开启 MySQL 服务自启
systemctl enable mysqld
# 重载所有修改过的配置文件
systemctl daemon-reload

修改 ROOT 密码

grep 'temporary password' /var/log/mysqld.log

ALTER USER 'root'@'localhost' IDENTIFIED BY '\39hIgAmA3w8L61_'; 

开启远程权限

方便用户远程操作,安全性不推荐自行把握。可以设定指定 IP 访问。

新增用户 ROOT 用户方式

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '\39hIgAmA3w8L61_' WITH GRANT OPTION;

修改 Host 字段方式

update mysql.user set host='%' where user='root' and host='localhost' LIMIT 1;
flush privileges;

编译安装

针对更多个性化的配置,配置多个版本共存时推荐的方式。

获取对应版本

mysql 社区版服务端 下 https://downloads.mysql.com/archives/community/

在这里可以选择 mysql 版本、类型、支持系统。

这里选择版本是 5.5.4(其他版本大致相同),在 linux 系下运行的源码。

下载并解压进入其目录

wget https://cdn.mysql.com/archives/mysql-5.5/mysql-5.5.40.tar.gz
tar -xzf mysql-5.5.40.tar.gz
cd mysql-5.5.40

预编译配置

使用 cmake 进行编译,如果未安装,请安装 cmake 及相关依赖库。

yum install -y cmake gcc g++  make m4 bison ncurses-devel

创建构造目录

mkdir build
cd build

参数说明:

  • 默认安装的位置是 /usr/local/mysql/,如果需要修改可以指定他为其他路径位置。                        例如: # cmake . -DCMAKE_INSTALL_PREFIX=your_custom_location
  • 默认安装的数据目录是 /usr/local/mysql/data/,你可以通过修改 MYSQL_DATADIR 选项来修改路径。                                                                                                                                    例如: # cmake . -DMYSQL_DATADIR=your_custom_location
  • 编译更多配置参考 MySQL 官网文档 https://dev.mysql.com/doc/mysql-sourcebuild-excerpt/5.5/en/source-configuration-options.html
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/mysql5.5 \
 -DSYSCONFDIR=/usr/local/mysql/mysql5.5 \
 -DMYSQL_DATADIR=/mnt/data/mysql/mysql5.5 \
 -DMYSQL_UNIX_ADDR=/tmp/mysqld55.sock \
 -DMYSQL_TCP_PORT=3306 \
 -DDEFAULT_CHARSET=utf8  \
 -DDEFAULT_COLLATION=utf8_general_ci \
 -DEXTRA_CHARSETS=all \
 -DWITH_EMBEDDED_SERVER=1 \
 -DENABLED_LOCAL_INFILE=1 \
 -DWITH_MYISAM_STORAGE_ENGINE=1 \
 -DWITH_INNOBASE_STORAGE_ENGINE=1

编译

make && make install

编译后初始化配置工作

useradd mysql
groupadd mysql
cd /usr/local/mysql/mysql5.5
chown -R mysql .
chgrp -R mysql .

#二选一命令
#1.
scripts/mysql_install_db --user=mysql
chown -R root .
#2.
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/mysql5.5 --datadir=/mnt/data/mysql/mysql5.5 --defaults-file=/usr/local/mysql/mysql5.5/my.cnf
chown -R mysql /mnt/data/mysql/mysql5.5


#复制配置文件
cp support-files/my-medium.cnf ./my.cnf

#将服务启动脚本复制到系统目录
cp support-files/mysql.server /etc/init.d/mysqld
chmod u+x /etc/init.d/mysqld
chkconfig --add mysqld

#删除默认 my.cnf
rm -f /etc/my.cnf

错误解决

Installation of system tables failed!  Examine the logs in
/var/lib/mysql for more information.

https://serverfault.com/questions/523206/ubuntu-mysql-server-connection

sudo mv /var/lib/mysql /var/lib/mysql_bak
sudo mysql_install_db
sudo /etc/init.d/mysql start
sudo netstat -anp | grep 3306

还有就是 socket 文件的写入权限,可通过 my.cnf 确定

socket          = /tmp/mysqld55.sock
touch /tmp/mysqld55.sock
chown mysql:mysql /tmp/mysqld55.sock
chmod 775 /tmp/mysqld55.sock
rm -f /tmp/mysqld55.sock

删除系统内置或残留 my.cnf

rm -f /etc/my.cnf

http://blog.51cto.com/732233048/1636409

MySQL 服务控制

启动服务 service mysqld start

关闭服务 service mysqld stop

重启服务 service mysqld restart

修改 root 密码

首先启动 mysql 服务

service mysqld start

连接 mysql

./bin/mysql

#设置 root 新密码(低版本 mysql 使用,5.7 以后推荐使用 ALTER 或者修改 authentication_string 字段)
set password = password('root');

#清除系统空用户
use mysql;
delete from user where user = '';
flush privileges;

设置远程访问权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'rootmima' WITH GRANT OPTION;
Profile Picture
Jon

- From Web - 2019-02-16 17:16

这篇文章写得真好!


Profile Picture
Chauncey Eller

- From Web - 2019-02-17 04:44

@Jon 谢谢!


Profile Picture
xieyizhi

- From Web - 2019-02-26 12:25

@Chauncey Eller 3333


Profile Picture
冒险岛

- From Web - 2019-02-26 12:26

@Chauncey Eller 好样的


media iamge
StudioEIM - 冒险者讲习所
0:00