环境
CentOS 7
mysql 5.7.20
卸载自带的mariadb
检查
rpm -qa|grep mariadb
如果有mariadb,卸载
rpm -e mariadb-libs-5.5.44-2.el7.centos.x86_64 --nodeps
rpm -qa|grep mariadb
下载安装mysql
1. 获取mysql的yum源
- 在mysql官网获取rpm:https://dev.mysql.com/downloads/repo/yum/
- 将rpm上传到集群机器
说明:由于我wget一直失败,显示拒绝连接(不知道什么原因),所以采用的方式是从官网下载rpm,然后上传的方法;不过也可以直接用wget下载:
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
2. 安装yum源
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
安装进度完成后,在/etc/yum.repos.d/ 目录下会看到两个文件
mysql-community.repo mysql-community-source.repo
3. 安装mysql
yum install -y mysql-server
静等安装结束
4. 补充
在下载时,遇到连接失败的问题,在修改了几次yum源后还显示连接失败的错误,就知道是代理的问题。
修改yum代理
vi /etc/yum.conf
添加上代理(长期)
proxy=http://ip:port
修改yum源
参考中科大的yum源:http://mirrors.ustc.edu.cn/help/centos.html
- 备份原yum源
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
- 修改
vi /etc/yum.repos.d/CentOS-Base.repo
yum源内容(CentOS 7):
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=https://mirrors.ustc.edu.cn/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates
# mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=https://mirrors.ustc.edu.cn/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
# mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=https://mirrors.ustc.edu.cn/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
# mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
baseurl=https://mirrors.ustc.edu.cn/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
注:快速删除文件内容(方法其一)
truncate -s 0 /etc/yum.repos.d/CentOS-Base.repo
-s 表示大小
- 使其生效
yum makecache
测试mysql
1. 启动mysql
启动mysql服务
service mysqld start
设置开机启动
systemctl enable mysql
systemctl daemon-reload
启动完成后会在 /var/log/mysqld.log 查看到随机生成的密码
grep 'temporary password' /var/log/mysqld.log
找到随机生成的密码用于登录
2. 登录并修改初始密码
mysql -u root -p
输出随机生成的密码后,进入到sql命令行,修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';
说明: 这个密码自己设置,要求是大小写数字字母特殊字符组成的至少8位的密码。
3. 配置
- 允许远程登录
登入mysql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
说明: ‘%’表示任意地址,也可以指定ip
检查权限
use mysql
select host,user from user;
输出:
+-----------+---------------+
| host | user |
+-----------+---------------+
| % | root |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+---------------+
4 rows in set (0.00 sec)
exit;
- 开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
结果显示我防火墙已经关了  ̄□ ̄||
- 修改默认编码
vi /etc/my.cnf
在[mysqld] 标签下添加:
character_set_server=utf8
init_connect='SET NAMES utf8'
然后重启mysqld服务
service mysqld restart
检查编码
mysql -u root -p
show variables like '%character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
4. 测试数据库
use mysql
CREATE TABLE IF NOT EXISTS tasks (
task_id INT(11) AUTO_INCREMENT,
subject VARCHAR(45) DEFAULT NULL,
start_date DATE DEFAULT NULL,
end_date DATE DEFAULT NULL,
description VARCHAR(200) DEFAULT NULL,
PRIMARY KEY (task_id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO tasks(subject,start_date,end_date,description)
VALUES('Learn MySQL INSERT','2017-07-21','2017-07-22','Start learning..');
INSERT INTO tasks(subject,start_date,end_date,description)
VALUES ('任务-1','2017-01-01','2017-01-02','Description 1'),
('任务-2','2017-01-01','2017-01-02','Description 2'),
('任务-3','2017-01-01','2017-01-02','Description 3');
SELECT * FROM tasks;
+---------+--------------------+------------+------------+------------------+
| task_id | subject | start_date | end_date | description |
+---------+--------------------+------------+------------+------------------+
| 1 | Learn MySQL INSERT | 2017-07-21 | 2017-07-22 | Start learning.. |
| 2 | 任务-1 | 2017-01-01 | 2017-01-02 | Description 1 |
| 3 | 任务-2 | 2017-01-01 | 2017-01-02 | Description 2 |
| 4 | 任务-3 | 2017-01-01 | 2017-01-02 | Description 3 |
+---------+--------------------+------------+------------+------------------+
4 rows in set (0.00 sec)
另外,我通过pycharm也能够连接192.168.122.128这台机器的mysql数据库,并进行操作。
总结
装之前立了个死亡flag,觉得装个mysql挺简单的;不过装的过程中也踩了不少坑,一步步排错,记录,最后总算是成功安装;其中参考了不少dalao们的博客,以及出错的解决方案,受益匪浅。
参考:
Centos7.3安装和配置Mysql5.7
CentOS7安装配置mysql5.7
Linux如何更换yum源
Linux如何用rpm安装软件