美文网首页
CentOS7安装Mysql5.7

CentOS7安装Mysql5.7

作者: 安安爸Chris | 来源:发表于2018-12-04 15:24 被阅读0次

CentOS7是默认带mariadb数据库的。它是Mysql的一个分支版本。如果是要安装Mysql 社区版本,那么要先卸载掉它。

rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.35-3.el7.x86_64

下载Mysql5.7

我使用的Mysql版本是5.7。
从Mysql官方网站上下载:

wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
下载后安装
rpm -ivh mysql57-community-release-el7-7.noarch.rpm

这个包很小,不是实际的安装包,只是增加了yum中的源。安装后,可以在yum中找到要安装的包了。

yum list Mysql*

mysql安装包

安装Mysql5.7

yum install mysql-community-server.x86_64

配置Mysql

刚安装完毕后,是无法通过systemctl启动的。
会遇到

需要在/etc/systemd/system下新建一份service unit配置
新建文件mysqld.service,内如如下,需要修改对应的路径

[Unit]
Description=MySQL Server
After=network.target

[Service]
Group=mysql
ExecStart=/usr/sbin/mysqld --defaults-file=/etc/my.cnf --user=root
WorkingDirectory=/usr

[Install]
WantedBy=multi-user.target

修改配置文件/etc/my.cnf

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
user=mysql
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


#skip-grant-tables

创建用户

安装好后会发现无法本地登录,默认Mysql禁用了本地登录

Access denied for user 'root'@'localhost'

需要找到Mysql的配置文件,先将鉴权禁用。
my.cnf文件
添加 skip-grant-tables

skip-grant-tables

然后重启。

接下来直接执行mysql就可以登录mysql了

执行

flush privileges;

再修改root密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';

ok, 退出来把skip-grant-tables删除,再重启。

配置Mysql

创建用户:
其中host指明了登录的方式。如果host是localhost,那么只能本机登录,如果ip地址或者*,表明可以远程访问。

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

Mysql日志位置

日志位置在/var/log/mysqld.log (默认)
具体可以在my.cnf文件中配置

常见问题

安装完Mysql后,通过systemctl start mysql报错

Failed to start mysql.server.service: Unit not found

【解决方案】需要在/etc/systemd/system下新建一份service unit配置,内容参考上文

安装完成后,mysqld启动不了

【解决方案】查看Mysql日志,根据Err级别的日志确定问题。
如果是安装问题,当时我遇到的是安装不完整,导致mysql初始化数据有问题。
当时的错误好像是提示什么表不存在(忘记保存现场了)
需要到mysql数据目录下,执行mysqld –initialize初始化表。

可能还有其他异常情况,我可能没有遇到,大家自己google一下。

相关文章

网友评论

      本文标题:CentOS7安装Mysql5.7

      本文链接:https://www.haomeiwen.com/subject/ktnpcqtx.html