在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的主要内容,如果未能解决你的问题,请参考以下文章
由于与 mariadb 冲突,mysql 无法在 CentOS 中安装
在 Docker 的 CentOS7 镜像 中安装 mysql