MySQL 安装摆设

打印 上一主题 下一主题

主题 1032|帖子 1032|积分 3096

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
概述

本文主要先容如何在 Linux 中以 RPM 包的方式安装 MySQL 并进行相关的初始化设置,文中方案均已实践验证。
操作系统CentOS 7.6数据库版本MySQL 8.4.3 LTS
[!NOTE] 说明
本文主要先容 RPM 包的安装方式,其他安装方法可查阅官网:MySQL :: MySQL 8.4 Reference Manual :: 2.5 Installing MySQL on Linux
环境准备

从官方下载RPM包:MySQL :: Download MySQL Community Server

  • 版本:8.4.3 LTS
  • 系统:RedHat Linux / Oracle Linux
  • 内核:Linux 7 (本文是7-x86-84bit)
各个包之间存在依赖关系,如果需要安装完整版,则下载 RPM bundle tar ,里面包含了所有的RPM包。大多数情况下,标准安装MySQL只需要下载以下RPM包:

  • mysql-community-server
  • mysql-community-client
  • mysql-community-client-plugins
  • mysql-community-libs
  • mysql-community-icu-data-files
  • mysql-community-common
  • mysql-community-libs-compa
如果已安装MySQL,需要先删除旧版本:
  1. yum list installed | grep mysql
  2. rpm -qa | grep mysql
  3. yum remove mysql
复制代码
安装摆设

将下载的RPM包上传至服务器目录,并在目录下执行如下下令进行安装:
  1. $> su - mysql
  2. $> sudo yum install mysql-community-{client,client-plugins,common,libs}-*
复制代码
[!NOTE] 注意
有些用户会使用 rpm -Uvh ,但是由于潜在的依赖项问题,可能会导致安装失败,因此使用 yum 。
安装完成后,会创建如下文件和资源:
Files or ResourcesLocation说明Client programs and scripts/usr/bin客户端程序和脚本mysqld server/usr/sbinmysqld 服务器Configuration file/etc/my.cnf设置文件Data directory/var/lib/mysql数据目录Error log fileFor RHEL, Oracle Linux, CentOS or Fedora platforms: /var/log/mysqld.log

For SLES: /var/log/mysql/mysqld.log错误日志文件Value of secure_file_priv/var/lib/mysql-filesSystem V init scriptFor RHEL, Oracle Linux, CentOS or Fedora platforms: /etc/init.d/mysqld

For SLES: /etc/init.d/mysql初始化脚本Systemd serviceFor RHEL, Oracle Linux, CentOS or Fedora platforms: mysqld

For SLES: mysql系统服务Pid file/var/run/mysql/mysqld.pidPid 文件Socket/var/lib/mysql/mysql.sockKeyring directory/var/lib/mysql-keyring密钥环目录Unix manual pages/usr/share/manInclude (header) files/usr/include/mysqlLibraries/usr/lib/mysqlMiscellaneous support files (for example, error messages, and character set files)/usr/share/mysql该安装还会创建一个名为 mysql 的用户及用户组(本文已经提前创建了)。
[!NOTE] 注意

  • mysql 用户是使用 useradd 下令的 -r 和 -s /bin/false 选项创建的,因此它没有登录服务器主机的权限(有关详细信息,请参阅创建 mysql 用户和组。要切换到 mysql 用户,请使用 su 下令及选项:
  1. $> su - mysql --shell=/bin/bash
复制代码

  • 安装旧版本的MySQL时,软件包可能已经创建了 /usr/my.cnf 的设置文件,请检查文件内容并迁移此中的所需设置至新的设置文件 /etc/my.cnf ,然后删除 /usr/my.cnf 。
至此安装完成,启动服务:
  1. $> systemctl start mysqld
复制代码
可以根据需要设置开机自启动:
  1. systemctl enable mysqld
  2. systemctl list-unit-files|grep mysqld
复制代码
初始启动后,会创建超级用户root'@'localhost,用如下下令检察暂时密码:
  1. $> sudo grep 'temporary password' /var/log/mysqld.log
复制代码
使用暂时密码登录后修改密码:
  1. $> mysql -uroot -p
  2. mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
复制代码
如果在安装过程中出现问题,可以在错误日志文件 /var/log/mysqld.log 检察相关信息。
如果需要安装多个客户端库版本以保持兼容性,使用--oldpackage,比方:
  1. $> rpm --oldpackage -ivh mysql-community-libs-5.5.50-2.el6.x86_64.rpm
复制代码
[!NOTE] 注意
更多详细信息可参见官网文档:MySQL :: MySQL 8.4 Reference Manual :: 2.5.4 Installing MySQL on Linux Using RPM Packages from Oracle
初始设置

设置远程毗连


  • 修改 /etc/my.cnf,在mysqld 块加入设置项 bind-address=* (大概 `bind-address=0.0.0.0)。
  • 修改 /etc/my.cnf,在mysqld 块加入设置项mysql_native_password=ON 以允许本地密码毗连,重启服务。
  • 修改用户的host字段,允许远程主机毗连,用通配符 % 表示任意主机:
  1. use mysql;
  2. update user set host = '%' where user = 'root';
  3. flush privileges;
复制代码

  • 确保服务器的防火墙规则允许MySQL服务端口(默以为3306)上的入站流量。
创建用户授权登录

创建新库
  1. CREATE DATABASE mydatabase;
复制代码
创建用户和密码
  1. CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
复制代码
授权用户
  1. GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'%';
复制代码
革新权限
  1. FLUSH PRIVILEGES;
复制代码
验证登录:
  1. mysql -h xx.xx.xx.xx -P 3306 -u myuser -p
复制代码
常见问题

无法使用暂时密码登录,登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES) 拒绝访问。


  • 设置登录时跳过权限检查:修改 /etc/my.cnf,在mysqld 块加入设置项 skip-grant-tables ,然后重启数据库 systemctl restart mysqld 。
  • 登录mysql :mysql –uroot –p
  • 修改密码:
  1. update mysql.user set authentication_string = 'Root@1234' where user = 'root';
  2. flush privileges;
复制代码
远程客户端(如Navicat、DBeaver等)毗连报错:Authentication plugin 'caching_sha2_password' cannot be loaded

由于MySQL 8.4.3 默认使用的是caching_sha2_password验证方式,但客户端不支持,需要服务端开启 mysql_native_password ,即在my.cnf 文件的 [mysqld] 部分中加入mysql_native_password=ON  大概以参数 --mysql-native-password=ON 启动 MySQL 服务。
检察当前设置:
  1. mysql> select user, host, plugin from mysql.user;
复制代码
[!NOTE] 注意
mysql_native_password 身份验证 plugin 从 MySQL 8.0.34 开始被弃用,在 MySQL 8.4 中默认处于禁用状态 ,并从 MySQL 9.0.0 中删除。
修改my.cnf设置后MySQL无法启动

由于MySQL 8.4.3 的部分设置参数对比之前版本存在较大差别,而现在网络上大部分文章的设置参数都是早期版本,导致修改后启动服务报错,比如:
是否启用native_password,旧版本是default-authentication-plugin=mysql_native_password ,新版本是 mysql_native_password=ON
旧版本是default-authentication-plugin=mysql_native_password ,新版本是 mysql_native_password=ON
各参数设置请以官网为准:
MySQL :: MySQL 8.4 Reference Manual :: 7.1.7 Server Command Options
参考文章


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用户云卷云舒

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表