【CentOS7】安装MySQL

检查是否安装过MySQL

检查是否用yum安装过mysql

yum list installed | grep -i mysql

检查是否用过rpm安装过mysql

rpm -qa | grep -i mysql

检查有没有mysql服务开启

systemctl status mysqld.service

卸载MySQL(可选)

1. 关闭 mysql 服务

systemctl stop mysqld.service

2. 查看当前 mysql 安装状况

rpm -qa | grep -i mysql
# 或
yum list installed | grep mysql

3. 卸载上述命令查询出的已安装程序

yum remove mysql-xxx mysql-xxx mysql-xxx mysqk-xxxx

务必卸载干净,反复执行rpm -qa | grep -i mysql确认是否有卸载残留

4. 删除 mysql 相关文件

  • 查找相关文件

find / -name mysql
  • 删除上述命令查找出的相关文件

rm -rf xxx

5.删除 my.cnf

rm -rf /etc/my.cnf

安装

由于我使用yum list all | grep -i mysql

发现并没有mysql安装包,所以我选择从外部导入,然后再用rpm安装

检查依赖

安装MySQL需要libaio依赖,这个是必须的,libaio 是一个支持异步 I/O 的库,通常 MySQL 使用它来提高性能。

net-tools这个不是必须的,只是建议,包含了一系列网络工具(如 ifconfignetstat 等),在某些情况下可能会被用到

yum list installed | grep -i libaio
yum list installed | grep -i net-tools

上传压缩包

MySQL :: Download MySQL Community Server (Archived Versions)

在这个链接下载这五个rpm安装包

图中的顺序是安装的顺序不准错!!

开始安装

注意顺序!!!

安装libs的过程中可能会报错,说什么Centos7默认数据库是mariadb-libs,所以我们要删掉这个,这么看的话,这个数据库与mysql应该都很多通用的依赖

yum remove mysql-libs

检查安装

mysqld --version 
#或
mysqladmin --version

服务初始化

mysqld --initialize --user=mysql
  • --user=mysql 指定了 MySQL 服务器进程mysql 用户身份运行,这有助于提升安全性,防止其他用户访问 MySQL 的数据目录。
  • --initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登录后你需要设置一个新的密码。生成的临时密码会往日志中记录一份。

查看初始密码

启动

#加不加.service后缀都可以 
启动:systemctl start mysqld.service 
关闭:systemctl stop mysqld.service 
重启:systemctl restart mysqld.service 
开机自启:systemctl enable mysqld.service 
关闭开机自启:systemctl disable mysqld.service 
查看状态:systemctl status mysqld.service

登录

注意这里用的本地localhost的root用户登录

这里输入刚才的初始密码

mysql -hlocalhost -P3306 -uroot -p

修改密码

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

 有可能会报错

意思就是密码遵循了某个策略,而root太简单了不符合策略

可以修改策略

vim /etc/my.cnf

validate_password.policy = LOW
validate_password.length = 4

也可以修改更难的密码

配置远程登录用户

Linux用于生产环境,需要开启远程登录的功能,需要配置

确保网络通畅

开放端口

检查防火墙状态

systemctl status firewalld
或
firewall-cmd --state

防火墙是开着的,我们只需要开放MySQL的端口就行,默认是3306,我没有改

firewall-cmd --list-ports
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-ports

创建远程用户

SHOW DATABASES;
USE mysql;
mysql -uroot -p
SELECT Host, User FROM user; 

CREATE User 'remote'@'%' IDENTIFIED BY 'Remote@1234';
SHOW GRANTS FOR 'remote'@'%';

这样创建的用户为给一个USAGE权限,也就是远程连接的权利 

这里赋予全部权限,这里不包括GRANT权限,不过生产环境不要这么搞 

#赋予全部权限,这里不包括GRANT的权限
GRANT ALL PRIVILEGES ON *.* TO 'remote'@'%';

FLUSH PRIVILEGES;

字符集相关操作

字符集列表

show variables like 'character%';

  • character_set_server:服务器级别的字符集

  • character_set_database:当前数据库的字符集

  • character_set_client:服务器解码请求时使用的字符集

  • character_set_connection:服务器处理请求时会把请求字符串从character_set_client转为character_set_connection

  • character_set_results:服务器向客户端返回数据时使用的字符集

小结

  • 如果创建或修改列时没有显式的指定字符集和比较规则,则该列默认用表的字符集和比较规则

  • 如果创建表时没有显式的指定字符集和比较规则,则该表默认用数据库的字符集和比较规则

  • 如果创建数据库时没有显式的指定字符集和比较规则,则该数据库默认用服务器的字符集和比较规则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值