在CentOS中安装Mysql

Posted 猫不急

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在CentOS中安装Mysql相关的知识,希望对你有一定的参考价值。

参考文档 http://www.linuxidc.com/Linux/2016-09/135288.htm

安装环境:  CentOS7 64位 

安装版本:   mysql5.7版本

 

如果之前有安装过mysql,可以使用如下命令进行卸载

# yum list installed | grep mysql
# yum -y remove mysql-***.****

 

安装mysql有使用yum在线安装也可以离线安装,这里只提供比较简单在线在线安装方式。

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

拉到最下面有下载选项:

 

获得下载路径,进行下载:

wget https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm

安装mysql源

yum install mysql57-community-release-el7-11.noarch.rpm

检查mysql源

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

调整mysql源的默认版本号:(修改对应版本下的enabled即可) 1启用 0不启用

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

如果只安装mysql客户端的话,则只需要执行,如果要完整安装的话,直接安装server就可以了

yum install mysql-community-client

 

安装mysql服务

yum install mysql-community-server

 

启动mysql服务

systemctl start mysqld

查看服务状态

systemctl status mysqld

 

设置开机启动

systemctl enable mysqld
systemctl daemon-reload

修改root登录密码

mysql第一次启动时,会在/var/log/mysqld.log文件中生成一个root的临时密码。

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

登录系统,修改root密码

mysql -uroot -p

mysql>ALTER USER \'root\'@\'localhost\' IDENTIFIED BY \'MyNewPass4!\';

或者

mysql> set password for \'root\'@\'localhost\'=password(\'MyNewPass4!\'); 

 

修改mysql系统配置后,可以刷新一下

mysql>FLUSH PRIVILEGES;

 

mysql默认启动了安全策略,如果密码不符合要求会报1819。要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位

查看密码策略

show variables like \'%password%\';

MySQL官网密码策略详细说明:http://dev.mysql.com/doc/refman/5.7/en/validate-password-options-variables.html#sysvar_validate_password_policy

 

修改密码策略

vi /etc/my.cnf

添加validate_password_policy配置
# 选择0(LOW),1(MEDIUM),2(STRONG)其中一种,选择2需要提供密码字典文件
validate_password_policy=0

关闭密码策略
validate_password = off

重启mysql服务使配置生效
systemctl restart mysqld

 

远程授权登录

# 给特定IP授权
GRANT ALL PRIVILEGES ON *.* TO \'root\'@\'192.168.1.100\' IDENTIFIED BY \'root\' WITH GRANT OPTION;

# 给任意IP授权
GRANT ALL PRIVILEGES ON *.* TO \'root\'@\'%\' IDENTIFIED BY \'root\' WITH GRANT OPTION;

 

 

配置系统为UTF-8编码

修改/etc/my.cnf

[mysqld]
character_set_server=utf8
init_connect=\'SET NAMES utf8\'

显示编码  show variables like \'%character%\';

默认配置文件路径:
配置文件:/etc/my.cnf
日志文件:/var/log//var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid

 

打开centos的防火墙3306端口

firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload

 

 

因为开放root是不安全的,所以一般我们会新创建一个用户

 

创建用户允许本地IP访问

create user \'test\'@\'localhost\' identified by \'test\';  

 

创建用于允许外网IP访问

create user \'test\'@\'%\' identified by \'test\'; 

 

刷新授权

flush privileges;  

 

创建一个数据库

create database testdb DEFAULT CHARSET utf8 COLLATE utf8_general_ci;  

 

为用户授予外网IP的所有权限

grant all privileges on `testdb`.* to \'test\'@\'%\' identified by \'test\';

 

授予用户本地权限

grant all privileges on `testdb`.* to \'test\'@\'localhost\' identified by \'test\'; 

 

刷新权限

flush privileges;  

 

退出重新用新用户登录即可

以上是关于在CentOS中安装Mysql的主要内容,如果未能解决你的问题,请参考以下文章

在CentOS中安装Mysql

由于与 mariadb 冲突,mysql 无法在 CentOS 中安装

在centos6.5中安装mysql5.7

在 Docker 的 CentOS7 镜像 中安装 mysql

在 Docker 的 CentOS7 镜像 中安装 mysql

centos 7 中安装 mysql 5.7