CentOS7中使用yum安装mysql

安装

参照 2.5.1 Installing MySQL on Linux Using the MySQL Yum Repository中的说明,使用yum安装mysql。

主要步骤如下:

  1. 下载centos7/redhat7对应的mysql的yum文件。或者点击MySQL Yum Repository,查看"Red Hat Enterprise Linux 7"对应的rpm为mysql84-community-release-el7-2.noarch.rpm,则使用命令wget http://dev.mysql.com/get/mysql84-community-release-el7-2.noarch.rpm直接下载rpm文件。

  2. 执行命令,安装yum源:

bash 复制代码
$> sudo yum install mysql80-community-release-el6-{version-number}.noarch.rpm
  1. 然后选择mysql版本,例如选择mysql8.0版本:
bash 复制代码
$> yum repolist all | grep mysql
$> sudo yum-config-manager --disable mysql57-community
$> sudo yum-config-manager --enable mysql80-community
  1. 安装MySQL:
bash 复制代码
$> sudo yum install mysql-community-server
  1. 启动MySQL:
bash 复制代码
$> systemctl start mysqld
$> systemctl status mysqld

设置用户名和密码并赋予权限

MySQL的用户名使用'user_name'@'host_name'格式进行设置,如果不设置@'host_name',则host_name默认使用%,代表任意IP均可以连接。localhost代表本地连接。关于用户名的详细规则,可以参考6.2.4 Specifying Account Names。

检查临时密码,用root用户登录,修改root密码:

bash 复制代码
$> sudo grep 'temporary password' /var/log/mysqld.log
$> mysql -uroot -p
mysql> SHOW VARIABLES LIKE 'validate_password%';	# 查看密码规则,然后把密码规则都调低
mysql> set global validate_password.policy=0;
mysql> set global validate_password.special_char_count=0;
mysql> set global validate_password.number_count=0;
mysql> set global validate_password.mixed_case_count=0;
mysql> set global validate_password.length=1;
mysql> set global validate_password.check_user_name=OFF;
mysql> SHOW VARIABLES LIKE 'validate_password%';
+-------------------------------------------------+-------+
| Variable_name                                   | Value |
+-------------------------------------------------+-------+
| validate_password.changed_characters_percentage | 0     |
| validate_password.check_user_name               | OFF   |
| validate_password.dictionary_file               |       |
| validate_password.length                        | 1     |
| validate_password.mixed_case_count              | 0     |
| validate_password.number_count                  | 0     |
| validate_password.policy                        | LOW   |
| validate_password.special_char_count            | 0     |
+-------------------------------------------------+-------+
8 rows in set (0.00 sec)

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

使用新密码登录:

bash 复制代码
$> mysql -uroot -proot # 注意-p后没有空格,-u后可以有空格。也可以-p后什么都不接,手动输入密码

创建新用户并设置密码(详情参看6.2.14 Assigning Account Passwords),并赋予权限(参看6.2.2 Privileges Provided by MySQL和13.7.1.6 GRANT Statement):

bash 复制代码
mysql> create user 'eric'@'%' identified by 'eric';   # 创建用户
mysql> grant all privileges on *.* to 'eric'@'%' with grant option;   # 赋予用户权限,用户名可以直接写eric
mysql> flush privileges;   # 重新加载权限使其生效,有可能不需要这一步
mysql> quit # 退出,可以不加分号,或使用ctl+d退出

查询某个用户的权限:

bash 复制代码
mysql> show grants for eric;

Testing the Server

使用mysqladmin version查看MySQL版本:

bash 复制代码
$> mysqladmin -uroot -proot version # mysqladmin在/usr/bin/目录下。root/root是mysql的用户名密码。对于新安装的MySQL,可能不需要-u和-p选项
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
mysqladmin  Ver 8.0.25 for Linux on x86_64 (MySQL Community Server - GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version		8.0.25
Protocol version	10
Connection		Localhost via UNIX socket
UNIX socket		/var/lib/mysql/mysql.sock
Uptime:			1 hour 30 min 24 sec

Threads: 2  Questions: 14  Slow queries: 0  Opens: 152  Flush tables: 3  Open tables: 71  Queries per second avg: 0.002

使用mysqlshow列出数据库:

bash 复制代码
$> mysqlshow -uroot -proot
mysqlshow: [Warning] Using a password on the command line interface can be insecure.
+--------------------+
|     Databases      |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| springsec          |
| sys                |
| vhr                |
+--------------------+

使用mysql -e执行查询语句:

bash 复制代码
$> mysql -uroot -proot -e "SELECT User, Host, plugin FROM mysql.user" mysql
mysql: [Warning] Using a password on the command line interface can be insecure.
+------------------+-----------+-----------------------+
| User             | Host      | plugin                |
+------------------+-----------+-----------------------+
| root             | %         | mysql_native_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+

技巧

参看B.3.3.2 How to Reset the Root Password,重置root密码。

mysql的可执行文件在/usr/bin/mysql*和/usr/sbin/mysql*中,如果找不到,可以用find -name "mysql"进行搜索。

mysql有个配置文件/etc/my.cnf,里面配置了mysql的datadir(数据文件)位置为/var/lib/mysql,并且配置了port=3306用作mysql启动端口(参看How to change the default port of mysql from 3306 to 3360)。

使用命令sudo ss -antp | grep mysqld或ps -ef | grep mysql(--port选项),可以检测现有MySQL使用的端口是哪个。

参考资料

相关推荐
`Levie18 小时前
MySQL-数据库服务日志管理与数据闪回
数据库·mysql
香蕉大香蕉(06敬畏市场)18 小时前
MySQL 单点详解(01)
java·数据库·mysql·面试·博客·实习
吹什么轩19 小时前
MySQL 事务管理:从 ACID 到 MVCC,一篇讲透
数据库·mysql
paopaokaka_luck20 小时前
基于springboot+vue的益暖微光公益服务平台(DeepSeek公益助手、善款信息追溯、志愿服务积分闭环、ECharts运营分析、活动状态自动流转)
java·前端·javascript·spring boot·mysql·架构·echarts
m0_6399069420 小时前
MySQL 锁机制详解|表锁、行锁、意向锁,死锁成因与解决方案
数据库·mysql
进击的荆棘20 小时前
MySQL——在ubuntu环境下安装MySQL
数据库·mysql·ubuntu
夜雪一千20 小时前
MySQL 数据字典如何获得
数据库·mysql
honsor21 小时前
用 Grafana 做温湿度异常检测:从阈值告警到趋势预测
数据库·mysql·php
lusklusklusk21 小时前
SQL Server 为什么普通 SELECT 会阻塞 UPDATE?——行级 S 锁到表级 S 锁的锁升级原理与实验验证
数据库·mysql·oracle
程序员塔塔喵1 天前
【MySQL篇|第十而二篇】深层次讲解MVCC机制
mysql·mvcc