AWS BPA Advanced大数据流程智能化分析平台

MySQL安装

注:如果您已经安装了 MySQL,可以直接跳到配置部分。

1. 准备安装

解压 mysql 安装包:

tar -zxvf mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz

2. 用户和用户组设置

首先,检查是否存在 mysql 用户和用户组:

groups mysql

如果显示 "groups: mysql: no such user",那么需要添加:

groupadd mysql && useradd -r -g mysql mysql

解释:
该命令在系统中创建一个新的用户组mysql,接着为这个用户组创建一个新的系统用户mysql

3. 数据目录创建和权限设置

mkdir -p /data/mysql
chown mysql:mysql -R /data/mysql

解释:
这两条命令首先在系统上创建/data/mysql目录,接着将该目录的所有权和组所有权更改为mysql用户和mysql用户组。

4. 配置文件设置

编辑或创建 MySQL 的配置文件 /etc/my.cnf

vim /etc/my.cnf

确保 [mysqld] 部分如下所示:

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true

解释:
my.cnf配置文件中,此段配置为MySQL服务器定义了以下参数:

  1. bind-address=0.0.0.0: 允许来自任何IP的连接。
  2. port=3306: MySQL服务监听的端口。
  3. user=mysql: MySQL服务以mysql用户身份运行。
  4. basedir=/usr/local/mysql: MySQL的安装目录。
  5. datadir=/data/mysql: 数据库文件的存储目录。
  6. socket=/tmp/mysql.sock: MySQL的socket文件路径。
  7. log-error=/data/mysql/mysql.err: 错误日志文件的路径。
  8. pid-file=/data/mysql/mysql.pid: 进程ID文件的路径。
  9. character_set_server=utf8mb4: 服务器的默认字符集为utf8mb4
  10. symbolic-links=0: 禁用符号链接,增加安全性。
  11. explicit_defaults_for_timestamp=true: 设置时间戳字段的默认行为。
    这段配置为MySQL服务器提供了启动和运行所需的基本参数。

5. 移动MySQL目录

将解压后的 MySQL 目录移动到 /usr/local/mysql,并确保文件夹名称不包含版本号信息:

cd /opt
mv mysql-5.7.41-linux-glibc2.12-x86_64 /usr/local/
cd /usr/local/
mv mysql-5.7.41-linux-glibc2.12-x86_64 mysql

6. MySQL初始化

首先,切换到 MySQL 的 bin 目录:

cd mysql/bin/

然后执行初始化命令:

./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

解释:
这个命令初始化MySQL服务器:

  1. 使用/etc/my.cnf作为默认配置文件。
  2. 设置MySQL的基本目录为/usr/local/mysql/
  3. 指定数据存储的目录为/data/mysql/
  4. mysql用户身份运行。
  5. 初始化MySQL数据目录和系统表。

7. 查看默认密码

初始化后,MySQL 通常会生成一个默认的 root 密码:

cat /data/mysql/mysql.err

8. 将 MySQL 加入到服务中

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

解释:
该命令将MySQL的启动脚本从其默认位置复制到/etc/init.d/,从而使MySQL可以作为系统服务进行管理。

9. 启动 MySQL

service mysql start

完成上述步骤后,您应该已经成功安装和配置了 MySQL。为确保安全,建议您登录后立即更改默认密码。


:bulb:常见问题

Q: MySQL服务无法启动,怎么办? A: 首先,查看MySQL的错误日志文件,以找出可能的原因。这可能是由于配置错误、端口冲突或文件权限问题造成的。

Q: 登录 MySQL 时mysql命令无法识别 A: 将 MySQL 的 bin 目录添加到你的 PATH,这样你就可以从任何位置直接运行 mysql 命令。 在/etc/profile文件的结尾添加:

export PATH=$PATH:/usr/local/mysql/bin

然后激活环境变量:

source /etc/profile

Q: MySQL启动service mysql start报错

[root@localhost bin]# service mysql start
Starting MySQL.2023-08-10T12:37:32.240439Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
 ERROR! The server quit without updating PID file (/data/mysql/mysql.pid).

A: 按照以下操作步骤处理: 确保日志文件存在并且mysql用户有权访问:

mkdir /var/log/mariadb/
touch /var/log/mariadb/mariadb.log
chown mysql:mysql /var/log/mariadb/mariadb.log

如果你已为MySQL或MariaDB指定了一个自定义的数据目录(如/data/mysql),请确保它存在,并且mysql用户有权访问:

chown -R mysql:mysql /data/mysql

尝试重新启动MySQL服务:

service mysql start

Q: 如何修改MySQL密码? A: 以 CentOS 7 为例,如果你想修改 MySQL 或 MariaDB 的密码,可以按照以下步骤操作:

  1. 登录 MySQL:

    mysql -u root -p
    

    输入当前的 root 用户密码。

  2. 选择 MySQL 的用户数据库:

    USE mysql;
    
  3. 修改密码: 对于 MySQL 5.7 及之前的版本:
    UPDATE user SET password=PASSWORD('新密码') WHERE User='root';
    
    对于 MySQL 5.7.6 及之后的版本:
    UPDATE user SET authentication_string=PASSWORD('新密码') WHERE User='root';
    
    如果你使用的是 MariaDB,密码字段可能是不同的,你可以使用以下命令:
    UPDATE user SET password=PASSWORD('新密码') WHERE User='root';
    
  4. 刷新权限:
    FLUSH PRIVILEGES;
    
  5. 退出 MySQL:
    EXIT;
    
  6. 重启 MySQL/MariaDB 服务 (如果需要):
    systemctl restart mysqld
    


Seven
 010-62962343-690
 liujx@actionsoft.com.cn
感谢您对该文档的关注!如果您对当前页面内容有疑问或好的建议,请与我联系。如果您需要解答相关技术问题请登录AWS客户成功社区