本例是在CentOS7上安装mysql5.7,所有配置方法也是基于此版本的
安装前请确保卸载MariaDB(内置的mysql数据库)
查看 mariadb的版本信息
rpm -qa | grep mariadb
根据结果,使用rpm工具卸载此数据库
rpm -e mariadb-libs-5.5.65-1.el7.x86_64 --nodeps
文章目录
mysql安装与配置
1、下载mysql源到linux的文件夹下
可以用wget工具来下载mysql
安装wget(已安装过可以跳过)
yum -y install wget
用wget工具将mysql软件源(MySQL Yum Repository)下载至/opt文件夹下
wget -P /opt wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
这里下载的是默认安装mysql5.7的软件源,想要安装其他版本的,本文末尾有相关演示。
【另外,不通过wget工具,也可以直接通过游览器在官网(有时需翻墙)下载安装源,甚至直接下载相关组件(server、client、common、libs),再通过ftp工具转到linux相关文件夹下。】
2、安装mysql
安装mysql源(注意要在mysql源的下载目录下执行)
yum -y install mysql57-community-release-el7-10.noarch.rpm
安装mysql
yum -y install mysql-community-server
查看安装情况
rpm -qa | grep mysql
3、登录mysql
mysql 5.7.4 之前的版本中默认是没有初始密码的(输入密码时,直接enter就可以进入数据库)。而之后的版本对密码策略等安全相关操作进行了一些升级,在安装过程中,mysql 会在日志中生成一个临时登录密码,这个密码可以通过运行时日志查询。
运行mysql服务并通过日志查询临时密码
service mysqld start
grep 'temporary password' /var/log/mysqld.log
用临时密码登录
mysql -u root -p
更改密码
set password for 'root'@'localhost'=password('rootAAA1234.');
注意:密码的要求包含大写字母、小写字母、数字、字符且数位大于8
更改variables表中的参数可以更改密码规则,以设置更简单的密码。
#改密码验证级别
set global validate_password_policy=LOW;
#改密码验证的数位
set global validate_password_length=4;
#查看密码验证策略
show variables like 'validate_password%';
# 我重设了密码为root
set password for 'root'@'localhost'=password('root');
4、配置远程访问mysql
授予root用户远程访问权限,并刷新权限(使生效)
grant all privileges on *.* to 'root' @'%' identified by 'root';
flush privileges;
5、设置字符集为utf8
输入exit退出mysql的操作界面
之后, 修改 /etc/my.cnf,在 [mysqld] 下添加以下语句
vi /etc/my.cnf
character-set-server=utf8
init_connect=‘set names utf8’
保存更改,退出后
重启mysql服务
systemctl restart mysqld
再进入mysql界面,查看字符集情况
show variables like '%character%';
mysql的其他配置
有需求的可以了解下,没需要的就不必看了,以防不必要的错误。
1、设置防火墙
service firewalld start #开启防火墙
firewall-cmd --zone=public --add-port=3306/tcp --permanent #开放mysql的3306端口
firewall-cmd --reload #更新防火墙规则
firewall-cmd --zone=public --list-ports #查看防火墙开放的端口,出现3306/tcp则成功
2、创建用户并赋权限
create user 'aa'@'localhost' identified by 'aaaa'; #创建名为aa,密码为aaaa的本地用户
grant all on *.* to 'aa'@'localhost'; #赋予aa本地连接所有表的全权限
flush privileges; #刷新权限相关表(使权限生效)
select user from mysql.user; #查看本地所有用户名
show grants for 'bb'; #查看aa的当前权限
关于权限赋予,可以给的值包括:all,create,lock_table,alter,delete,insert,select,create_view,show_databases,drop。权限字如其名,不再赘述。可插入多条,但必须要flush privileges后才能生效。
创建用户:create user 用户名@用户位置 identified by 用户密码;
赋予权限:grant 权限名 on 库名.表名 to 用户名@用户位置;
去除权限:revoke 权限名 on 库名.表名 from 用户名@用户位置;
权限刷新:flush privileges;
3、跳过密码验证
编辑/etc/my.cnf,在[mysqld]下添加语句skip-grant-tables
卸载mysql
查看mysql状态并关闭
service mysqld status #确认mysql客户端状态
service mysql stop #关闭mysql客户端
service mysqld status #确认mysql服务状态
service mysqld stop #关闭mysql后台服务
查看mysql安装项目并按顺序卸载
rpm -qa | grep mysql
这里mysql的删除顺序:server → client → libs → common (不按顺序会出现依赖问题,不让删)
#卸载mysql(桉顺序)
rpm -e mysql-community-server-5.7.30-1.el7.x86_64
rpm -e mysql-community-client-5.7.30-1.el7.x86_64
rpm -e mysql-community-libs-5.7.30-1.el7.x86_64
rpm -e mysql-community-common-5.7.30-1.el7.x86_64
#卸载mysql的yum源
mysql80-community-release-el7-3.noarch
查看并删除mysql相关文件夹
查看所有mysql文件夹
find / -name mysql
删除对应的文件夹及内部文件
rm -rf /etc/selinux/targeted/active/modules/100/mysql
rm -rf /var/lib/mysql
rm -rf /usr/share/mysql
删除mysql的其余配置
删除/etc/my.cnf
rm -rf /etc/my.cnf
删除用户组
#删除mysql用户组
userdel mysql
#查看mysql用户组是否还在
id mysql
mysql的选择性安装
mysql的最新安装源版本可在官网查看,比如目前最新的对应CentOs7的源是mysql80-community-release-el7-3.noarch.rpm,复制其链接将其下载并安装
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm #下载源
yum -y install mysql80-community-release-el7-3.noarch.rpm #安装源
使用命令vi /etc/yum.repos.d/mysql-community.repo修改配置,可更改默认安装项目,比如这里修改enabled参数,将原先安装mysql8.0改为了安装mysql5.7。
vi /etc/yum.repos.d/mysql-community.repo #修改enabled的值
yum -y install mysql-community-server #安装mysql