CentOS 安装 MySQL(各个版本)

版权声明:本文为博主原创文章,转载请声明出处!有问题联系QQ或微信(同号)85411418。 https://blog.csdn.net/ming2316780/article/details/86505083

CentOS 安装 MySQL

  • 可根据需求选择版本安装

添加MySQL的Yum镜像源

首先,将MySQLYum存储库添加到系统的存储库列表中。遵循以下步骤:

  • 转到mysql yum存储库的下载页面 https://dev.mysql.com/downloads/repo/yum/
  • 选择并下载平台的发布包。
  • 使用以下命令安装下载的发布包,替换platform-and-version-specific-package-name下载包的名称:
$ sudo rpm -Uvh platform-and-version-specific-package-name.rpm

在这里插入图片描述

  • 例如:对于版本n在基于EL7的系统包中,命令是:
$ wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

$ sudo rpm -Uvh mysql80-community-release-el7-1.noarch.rpm
  • 更新yum缓存
$ yum clean all

$ yum makecache fast

选择发行系列

在MySQLYum存储库中(https://repo.mysql.com/yum/),MySQLCommunityServer的不同版本系列托管在不同的子存储库中。默认情况下,会启用最新GA系列(当前MySQL8.0)的子存储库,默认情况下禁用所有其他系列(例如MySQL5.7系列)的子存储库。使用此命令查看mysql的yum存储库中的所有子存储库,并查看其中哪些已启用或禁用

$ yum repolist enabled | grep mysql

$ yum repolist all | grep mysql

要安装最新的GA系列的最新版本,不需要配置。若要从最新GA系列以外的特定系列安装最新版本,请在运行安装命令之前禁用最新GA系列的子存储库,并为特定系列启用子存储库。如果您的平台支持百胜-配置经理或DNF配置管理器命令,您可以通过发出以下命令来做到这一点,这些命令禁用8.0系列的子存储库,为5.7系列启用子存储库

$ sudo yum-config-manager --disable mysql80-community
$ sudo yum-config-manager --enable mysql80-community
$ sudo yum-config-manager --disable mysql57-community
$ sudo yum-config-manager --enable mysql57-community

安装MySQL

通过以下命令安装MySQL(会自动安装上面设置过可用的最新版本)

$ sudo yum install mysql-community-server

常用mysql服务命令:

  • 对于基于EL7的平台(CentOS 7):
//启动
$ systemctl start mysqld.service 
//查看状态
$ systemctl status mysqld.service
//关闭
$ systemctl stop mysqld.service
//重启
$ systemctl restart mysqld.service
//运行开机自启
$ systemctl enable mysqld.service
//不允许开机自启
$ systemctl disable mysqld.service

获取初始密码登录mysql

mysql在安装后会创建一个root@locahost账户,并且把初始的密码放到了/var/log/mysqld.log文件中

$ grep 'temporary password' /var/log/mysqld.log

$ cat /var/log/mysqld.log | grep password

//2018-09-25T06:14:35.146586Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: (km5q>gJr8Z#
  • 使用初始密码登录
$ mysql -u root -p
  • 修改初始密码:
$ ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword1234!';

在防火墙中开启3306端口(阿里云需去控制台打开)

//添加3306端口
$ firewall-cmd --zone=public --add-port=3306/tcp --permanent
//重启防火墙
$ firewall-cmd --reload
//查看所有打开的端口
$ firewall-cmd --zone=public --list-ports

开启mysql远程服务:

修改mysql数据库下的user表中host的值

默认下,帐号不允许从远程登陆,只能在localhost。这个时候要在localhost的那台电脑,登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从"localhost"改成"%"。登录mysql数据库 执行如下命令:

  • 修改登录IP限制
$ mysql -u root -p
mysql> use mysql;
mysql> update user set host='%' where user='root';

mysql> select host,user from user;
mysql> FLUSH PRIVILEGES;

创建新用户

//允许本地 IP(localhost, 127.0.0.1)访问:
mysql> create user 'test'@'localhost' identified by '123456';

//允许任何 IP 访问:
mysql> create user 'test'@'%' identified by '123456';

//刷新权限
mysql> FLUSH PRIVILEGES;

授权用户

  • 赋予root用户任何主机访问数据的权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
  • 如果想myuser用户任何主机连接到mysql服务器的话。
    • 第一个 * 代表数据库,* 默认全部
    • 第二个 * 代表数据库里的哪个表,* 默认全部
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%';
mysql> FLUSH PRIVILEGES;
  • 如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.6';
mysql> FLUSH PRIVILEGES;

DataGrip连接MySQL8.0

修改root用户密码规则(MySQL8 改成 MySQL5 的密码规则)(可不操作)

mysql8.0 引入了新特性 caching_sha2_password;这种密码加密方式客户端不支持;客户端支持的是mysql_native_password 这种加密方式

  • 修改root用户的密码规则和密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
  • 如果不行,则强行修改,但是密码也要改成mysql_native_password规则的密码
update user set plugin='mysql_native_password' where user='root';

//此操作要提前知道mysql_native_password规则下的密码
UPDATE user SET authentication_string = '*4F36585EC8288397071296B1773B86C90AD30335' WHERE user = 'root';

猜你喜欢

转载自blog.csdn.net/ming2316780/article/details/86505083