Centos7下安装MySQL8
mysql的repo
因为centos没有mysql的仓库安装源,需要从mysql官网下载。
repo下载页面 https://dev.mysql.com/downloads/repo/yum/
,在此页面选择合适的版本。
如下,选择centos7下的mysql8.0:
wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
下载成功后,将repo进行安装
yum install -y mysql80-community-release-el7-5.noarch.rpm
安装repo成功后,会在/etc/yum.repos.d/
目录下产生两个repo文件
[root@localhost yum.repos.d]# ls -l |grep mysql
-rw-r--r--. 1 root root 2062 1月 13 03:00 mysql-community.repo
-rw-r--r--. 1 root root 2132 1月 13 03:00 mysql-community-source.repo
或者通过以下命令查看mysql相关的仓库:
[root@localhost yum.repos.d]# yum repolist enabled|grep mysql
!mysql-connectors-community/x86_64 MySQL Connectors Community 230
!mysql-tools-community/x86_64 MySQL Tools Community 137
!mysql80-community/x86_64 MySQL 8.0 Community Server 321
安装mysql8
安装mysql之前,先检查当前系统是否已安装
yum remove mysql mysql-server mysql-libs mysql-server # 快速删除
rpm -qa|grep -i mysql # 查找残留文件
yum remove <文件名> # 逐个删除残留文件
whereis mysql # 查找残留目录
rm –rf <残留目录> # 删除残留目录
以上命令执行完成后,可以尝试安装mysql8
yum install -y mysql-community-server
安装成功后,可以尝试启动服务。
systemctl start mysqld
【注意】启动服务器可能需要一些时间,稍等一会。
启动成功后,查看mysql服务状态:
systemctl status mysqld
修改mysql的配置
安装mysql之后,默认的配置文件是
/etc/my.cnf
, 在配置文件中,[mysqld]
是配置服务器相关的选项,[mysql]
是客户端选项的配置。官方的配置项地址:https://dev.mysql.com/doc/refman/8.0/en/
字符集配置
在[mysqld]
位置配置服务器的字符集:
[mysqld]
....
character-set-server = utf8
[mysql]
default-character-set = utf8
配置OK之后,需要重启服务器
systemctl restart mysqld
验证口令配置
默认情况下,创建用户名或修改口令时,需要遵循默认策略。
以下配置是取消默认策略
[mysqld]
validate_password.check_user_name = OFF
validate_password.length =4
validate_password.mixed_case_count =0
validate_password.number_count =0
validate_password.policy =0
validate_password.special_char_count=0
同样,修改配置文件之后,需要重启mysql服务。
修改root口令
查看初始root用户的临时口令
[root@localhost yum.repos.d]# grep "password" /var/log/mysqld.log
2022-02-25T16:49:30.479822Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Lltw1YfZ5X(G
【注】l
是L字母的小写。 1
是数字1。
使用临时口令和mysql
客户端工具登录到mysql服务器
mysql -uroot -p
执行以上命令后,等待password:
出现,输入Lltw1YfZ5X(G
临时口令。输入口令时是不显示地。
进入mysql交互环境后,执行以下命令:
mysql> alter user 'root'@'localhost' identified with mysql_native_password by 'root';
修改成功后,退出mysql交互环境,再次尝试登录。
mysql -uroot -proot
创建库和用户
创建数据库
进入mysql交互环境后,可以通过以下命令创建数据库:
mysql> create database test1db;
打开数据库
mysql> use test1db;
显示库中的表
mysql> show tables;
新创建的库是没有空的。
创建用户
在mysql交互环境中,用户信息包含 用户名
和主机名host
。因此创建用户时,用户信息是用户名@主机
,如果只是本地连接数据库,默认是localhost
,如果允许所有客户端(远程)连接,可以是%
通配配符。
执行如下sql语句,创建disen用户并授权操作test1db数据库:
create user 'disen'@'%' identified with mysql_native_password by 'disen123456';
grant all privileges on test1db to disen;
flush privileges;
远程连接测试
可以编写一个python脚本(文件名任意命名,如test1.py),运行后并打印OK
即可。
【注】先安装pymysql库,通过pip install pymysql
import pymysql
conn = pymysql.Connect(host="localhost",port=3306, user="disen",passwd="disen123456", db="test1db")
print('OK')
运行测试脚本
python3 test1.py
开机启动服务
默认情况下,重启linux之后,mysql服务不能自动启动。
通过以下命令自动开启服务
systemctl enable mysqld
当然,也可以禁用开机启动服务
systemctl disable mysqld