CentOS上安装MySQL
参考:http://www.centoscn.com/mysql/2016/0315/6844.html
0. 检查MySQL是否已经安装
使用如下命令判断是否已经安装
yum list installed | grep mysql
如果有,就先全部卸载,命令如下:
yum -y remove mysql-libs.x86_64
1. 依赖包安装
MySQL 依赖 libaio,所以先要安装 libaio
yum search libaio # 检索相关信息
yum install libaio # 安装依赖包
2.下载MySQL Yum Repository
地址为 http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
wget http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
- 如果提示-bash: wget: 未找到命令,请先执行 yum install wget 安装 wget
3. 安装
使用yum 和刚刚下载的rpm源安装
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
yum install mysql-community-server
4.运行
- 安装完成后启动mysql服务
service mysqld start systemctl start mysqld
查看 MySQL Server 状态
service mysqld status systemctl status mysqld
关闭 MySQL Server
service mysqld stop systemctl stop mysqld
- 重启MySQL Server
service mysqld restart
5. 配置
5.1 安全性配置
有些版本的MySQL(5.6及以下版本)默认没有root密码,可以通过如下方式设置root用户密码
mysql -uroot mysql> set password for 'root'@'localhost' = password('CvcO7pQL'); mysql> exit
有些版本默认会生成一个密码,密码的查找方式如下:
(参考:http://blog.csdn.net/kindroid/article/details/51018107)在低于Mysql 5.7.6的版本上
Mysql是使用mysql_install_db命令初始化数据库的,该命令会在安装Mysql的用户根目录下创建一个.mysql_secret文件,该文件记录了初始化生成的随机密码,用户可使用改密码登录Mysql并重新修改密码。
- 对于Mysql 5.7.6以后的5.7系列版本
Mysql使用mysqld –initialize或mysqld –initialize-insecure命令来初始化数据库,后者可以不生成随机密码。但是安装Mysql时默认使用的是前一个命令,这个命令也会生成一个随机密码。改密码保存在了Mysql的日志文件中。
在Centos 7系统上使用rpm命令安装Mysql后,mysql的配置文件是/etc/my.cnf,打开该文件,可以看到mysql的datadir和log文件等的配置信息,如下:
datadir=/var/lib/mysql
log-error=/var/log/mysqld.log
打开/var/log/mysqld.log文件,搜索字符串A temporary password is generated for root@localhost:,可以找到这个随机密码,通常这一行日志在log文件的最初几行,比较容易看到。
做默认的安全设置:
mysql_secure_installation
在此过程中会需要输入前面找到的root用户密码,完成后所有安装流程全部完成
远程访问设置
创建一个普通用户 sa ,密码是 passwordset global validate_password_policy=0; #MySQL 5.7版本以上可能对密码安全性有要求,故可以降低安全级 CREATE USER 'sa'@'%' IDENTIFIED BY 'password';
给这个用户授予 SELECT,INSERT,UPDATE,DELETE 的远程访问的权限,这个账号一般用于提供给实施的系统访问
GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'sa'@'%';
创建一个管理员用户 jbadm 账号 ,密码是 password
CREATE USER 'jbadm'@'%' IDENTIFIED BY 'password';
给这个用户授予所有的远程访问的权限。这个用户主要用于管理整个数据库、备份、还原等操作。
GRANT ALL ON *.* TO 'jbadm'@'%';
使授权立刻生效
flush privileges;
5.2 数据文件存放配置
- 创建数据存放目录
mkdir /home/data
- 移动数据到数据存放目录
停止服务
移动目录mysqladmin -u root -p shutdown #停止服务
修改 /etc/my.cnf 文件mv /var/lib/mysql /home/data
修改
datadir=/home/data/mysql
socket=/home/data/mysql/mysql.sock
必要情况下可能还需要区分服务端和客户端的参数
[mysqld]/[client]/[mysql]
修改权限vi /etc/my.cnf
chown -R mysql:mysql /home/data/mysql
- 重启数据库服务
重启后,如果不能启动 MySQL 服务,执行
保存设置,执行 reboot 重启生效vi /etc/sysconfig/selinux #调整参数 SELINUX=permissive
5.3 设置字符集
一般的,为了支持中文,我们应该讲字符集设为 UTF-8, 执行
SHOW VARIABLES LIKE 'character%';
查看当前 MySQL 字符集
character_set_server为默认的字符集
修改 /etc/my.cnf 文件,添加字符集的设置
[mysqld]
character_set_server = utf8
[mysql]
default-character-set = utf8
5.4 打开防火墙
5.5 自动启动配置
检查是否开机自启
systemctl is-enabled mysqld.service;echo $?
如果是 enabled 则说明是开机自动
设置开机自启
chkconfig --levels 235 mysqld on