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 MySQL13.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 mysqldps -ef | grep mysql(--port选项),可以检测现有MySQL使用的端口是哪个。

参考资料

相关推荐
似水流年流不尽思念2 小时前
MySQL 的 MVCC 到底解决了幻读问题没有?请举例说明。
mysql·面试
秋难降2 小时前
零基础学SQL(八)——事务
数据库·sql·mysql
Starry_hello world2 小时前
MySql 表的约束
数据库·笔记·mysql·有问必答
DemonAvenger3 小时前
事务管理:ACID特性与隔离级别详解
数据库·mysql·性能优化
我是哈哈hh16 小时前
【MySQL】在UBuntu环境安装以及免密码登录入门
linux·数据库·mysql·ubuntu
喪彪17 小时前
MySQL新手教学
数据库·mysql·adb
HMBBLOVEPDX19 小时前
MySQL的多版本并发控制(MVCC):
数据库·mysql·mvcc
幽络源小助理21 小时前
MySQL实战优化高手教程 – 从架构原理到生产调优
数据库·mysql·架构
神仙别闹21 小时前
基于 JSP+Mysql实现MVC房屋租赁系统
java·mysql·mvc