linux下安装mysql

linux环境下安装MySQL (以Centos7为例)

通过RPM命令检查是否存在mysql

rpm -qa | grep mysql //
//存在可以采用
rpm -e filefullname//文件全名删除

通过Mariadb来安装MySQL

参考安装

通过mysql的yum repository来安装

参考安装

这种安装会覆盖掉默认的MariaDB,即MySQL的分支
在这里插入图片描述
选择合适的linux版本,

通过wget获取

wget -i -c https://repo.mysql.com//mysql80-community-release-el7-7.noarch.rpm

通过yum安装下载的文件

yum -y install mysql80-community-release-el7-7.noarch.rpm //yum安装会询问用户 :is that ok?  这里的y表示不再询问

安装MySQL服务器

yum -y install mysql-community-server

安装完成
在这里插入图片描述
如果出现No match for argument: mysql-community-server
Error: Unable to find a match: mysql-community-server 异常

//先执行
yum module disable mysql
//再执行
yum -y install mysql-community-server

如果出现公钥没有被安装
mysql80公钥未安装
出现问题的原因是mysql的gpg升级了需要重新获取,使用如下命令rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 然后在重新执行上面的安装mysql服务的命令 如果出现以下错误
mysql80安装出错
那么只能使用不需要gpg检查的安装命令了

sudo yum -y install mysql-community-server --nogpgcheck

最后出现如下画面表示安装成功了
mysql安装成功

MYSQL数据库操作设置

启动MySQL服务

systemctl start  mysqld.service

查看MySQL运行状态

systemctl status mysqld.service

在这里插入图片描述
active表示正在运行中。

在日志中查找mysql root临时密码

grep "password" /var/log/mysqld.log

以root进入mysql数据库并修改密码

mysql -uroot -p //以root方式进入并输入密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password'; //修改root密码 注意分号一定要输入

修改密码出现 Your password does not satisfy the current policy requirements 以下在MySql8.0 和 MySql5.7有区别

//查看mysql初始密码策略 注意要重新设置密码之后才能查看 建议使用临时密码设置为密码或者在临时密码基础上加一个字母即可

SHOW VARIABLES LIKE 'validate_password%';//查看密码策略

在这里插入图片描述
注意上面的在mysql5.7是validate_password后面是_而不是.
例如:
在mysql8.0 validate_password.policy 在mysql5.7中是 validate_password_policy

//根据set global命令修改对应的变量值

set global validate_password.policy=LOW;//以密码策略为例子 修改为低 其他类似 在mysql8.0
set global validate_password_policy=LOW;//在mysql5.7中

注意:该方式重启服务后 修改的内容失效

root用户授权远程或指定ip访问us

//进入mysql
use mysql;

//显示具体表的内容

update user set user.Host='%' where user.User='root'; //user.Host可以指定具体的ip %表示任意ip均可 user.User指定用户名

//刷新权限
 flush privileges;

创建新用户开启远程访问并刷新权限

参考mysql8.0授权


//创建新用户
//创建用户模板
CREATE USER 'opendeepspace'@'ip' IDENTIFIED BY 'psw'; //ip如果是任何% psw密码满足要求
//例子
CREATE USER 'opendeepspace'@'%' IDENTIFIED BY 'wy.023ch';

//设置所有权限 对某个表 在任意ip地址
grant all privileges on 数据库.* to '用户名'@'IP地址';
//例子 对ods数据库的所有表授所有权限 所有ip地址 所有权限指grant外的权限
grant all privileges on ods.*  to 'opendeepspace'@'%';

//收回权限 
revoke all privileges on 数据库.* to '用户名'@'IP地址';

//只对某些数据库的表有权限 增删改查
grant insert on 数据库.* to '用户名'@'IP地址';//数据库.*表示所有表 

//任意一步授权之后都要刷新权限
flush privileges;

创建新的用户并授权

//mysql5.7中可以直接
grant all privileges on . to test@'%' identified by '12345';

//MySQL8.0中必须先创建任意主机可访问的用户
 create user test@'%' identified by '12345.com';
//授权
grant all on . to test@'%'; #privileges 可以省略!
//刷新权限
flush privileges; 

检查防火墙开启端口

//添加3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent

//重载防火墙
firewall-cmd --reload

//查看防火墙列表
firewall-cmd --list-all

如果是阿里云ecs服务器 需要添加安全组开放3306端口入方向

更改mysql字符集


//如果在没配置开机启动之前,你关闭了服务器 那么需要先启动并检查状态
systemctl start mysqld
systemctl status mysqld


//登录mysql
mysql -uroot -p

//查看字符集
status; //

在这里插入图片描述
上面标注的就是需要修改的字符集。 在8.0版本中修改字符集为utf-8 上面的utf8mb4编程uft8mb3

//退出mysql
quit;

//停止服务
systemctl stop mysqld.service

//修改etc/my.cnf 新增字符集内容 修改保存
vi /etc/my.cnf //修改cnf

//需要添加的内容
[client]                   //如果没有[client]段,就自己添加上去
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci


//启动服务 或重启mysql
systemctl start mysqld //
service mysqld restart//重启mysql

//再次进入mysql查看状态
mysql -uroot -p
status;


设置开机启动

systemctl enable mysqld
systemctl daemon-reload
  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值