当前位置: 首页> 健康> 母婴 > 微信自助建站系统_合肥黄页_友情链接代码模板_搜索引擎谷歌入口

微信自助建站系统_合肥黄页_友情链接代码模板_搜索引擎谷歌入口

时间:2025/8/6 1:57:41来源:https://blog.csdn.net/wendao76/article/details/147194635 浏览次数:0次
微信自助建站系统_合肥黄页_友情链接代码模板_搜索引擎谷歌入口

web服务环境搭建之三: linux环境安装mysql

    • mysql安装(多版本支持)
      • **1. 准备工作**
        • 登录到阿里云服务器
        • 更新系统软件包
      • **2. 安装第一个版本的 MySQL(如 MySQL 5.7)**
        • **CentOS 系统**
        • **Ubuntu 系统**
      • **3. 安装第二个版本的 MySQL(如 MySQL 8.0)**
        • 下载二进制包
      • **4. 使用 `root` 用户通过 `sock` 文件连接**
        • 连接 MySQL 5.7
        • 连接 MySQL 8.0
      • **5. 常见问题排查**
    • 修改root密码
      • MySQL 修改 root 密码完整指南
        • **方法一:已知原密码时修改(推荐)**
        • **方法二:忘记密码时重置(安全模式)**
        • **方法三:使用 mysql_secure_installation(交互式)**
        • **方法四:配置文件初始化(MySQL 8.0+)**
        • **方法五:数据库初始化后获取默认密码**
        • **不同版本注意事项**
        • **常见问题解决**
        • **安全建议**
    • 创建用户并授权
      • **一、创建用户**
        • 1. **基础命令**
        • 2. **示例**
      • **二、授予权限**
        • 1. **基础语法**
        • 2. **常用授权示例**
        • 3. **立即生效**
      • **三、查看和验证权限**
        • 1. **查看用户权限**
        • 2. **查看所有用户**
      • **四、撤销权限**
        • 1. **撤销指定权限**
        • 2. **撤销所有权限**
      • **五、删除用户**
      • **七、常见问题解决**
        • **问题 1:用户无法远程连接**
        • **问题 2:权限未生效**
        • **问题 3:MySQL 8.0 认证失败**
      • **八、权限对照表**

mysql安装(多版本支持)

在阿里云服务器上安装并启动多个版本的 MySQL,并通过 root 用户使用 sock 文件的方式连接数据库,可以通过以下步骤实现。我们将采用不同的数据目录、配置文件和 sock 文件来避免冲突。

1. 准备工作

登录到阿里云服务器

通过 SSH 登录到你的阿里云服务器:

ssh root@<你的服务器公网IP>
更新系统软件包

确保系统软件包是最新的:

  • 对于 CentOS:
    yum update -y
    
  • 对于 Ubuntu:
    apt update && apt upgrade -y
    

2. 安装第一个版本的 MySQL(如 MySQL 5.7)

CentOS 系统
  1. 添加 MySQL Yum 仓库:

    wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
    rpm -Uvh mysql57-community-release-el7-11.noarch.rpm
    
  2. 安装 MySQL 5.7:

    yum install mysql-community-server -y
    
  3. 配置 MySQL 5.7 的 my.cnf 文件:
    编辑 /etc/my.cnf/etc/my57.cnf

    [mysqld]
    port=3306
    datadir=/var/lib/mysql57
    socket=/var/lib/mysql57/mysql.sock
    pid-file=/var/lib/mysql57/mysql.pid
    user=mysql
    
  4. 初始化 MySQL 数据目录:

    mkdir -p /var/lib/mysql57
    chown -R mysql:mysql /var/lib/mysql57
    mysqld --defaults-file=/etc/my57.cnf --initialize --user=mysql
    
  5. 启动 MySQL 服务:

    mysqld_safe --defaults-file=/etc/my57.cnf &
    
  6. 查看初始密码:

    grep 'temporary password' /var/log/mysqld.log
    
Ubuntu 系统
  1. 添加 MySQL APT 仓库:

    wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb
    dpkg -i mysql-apt-config_0.8.22-1_all.deb
    

    在弹出的界面中选择 MySQL 5.7。

  2. 安装 MySQL 5.7:

    apt update
    apt install mysql-server -y
    
  3. 配置 MySQL 5.7 的 my.cnf 文件:
    编辑 /etc/mysql/mysql.conf.d/mysqld.cnf/etc/my57.cnf

    [mysqld]
    port=3306
    datadir=/var/lib/mysql57
    socket=/var/lib/mysql57/mysql.sock
    pid-file=/var/lib/mysql57/mysql.pid
    user=mysql
    
  4. 初始化 MySQL 数据目录:

    mkdir -p /var/lib/mysql57
    chown -R mysql:mysql /var/lib/mysql57
    mysqld --defaults-file=/etc/my57.cnf --initialize --user=mysql
    
  5. 启动 MySQL 服务:

    mysqld_safe --defaults-file=/etc/my57.cnf &
    
  6. 查看初始密码:

    grep 'temporary password' /var/log/mysql/error.log
    

3. 安装第二个版本的 MySQL(如 MySQL 8.0)

下载二进制包
  1. 下载 MySQL 8.0 二进制包:

    wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz
    tar -xvf mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz
    mv mysql-8.0.33-linux-glibc2.12-x86_64 /usr/local/mysql8
    
  2. 创建数据目录和配置文件:

    mkdir -p /data/mysql8
    chown -R mysql:mysql /data/mysql8
    
  3. 配置 my.cnf 文件:
    创建 /etc/my8.cnf,内容如下:

    [mysqld]
    port=3307
    datadir=/data/mysql8
    socket=/data/mysql8/mysql.sock
    pid-file=/data/mysql8/mysql.pid
    user=mysql
    
  4. 初始化 MySQL 数据库:

    /usr/local/mysql8/bin/mysqld --defaults-file=/etc/my8.cnf --initialize --user=mysql
    
  5. 启动 MySQL 服务:

    /usr/local/mysql8/bin/mysqld_safe --defaults-file=/etc/my8.cnf &
    

4. 使用 root 用户通过 sock 文件连接

连接 MySQL 5.7
  1. 使用 sock 文件连接:

    mysql -u root -p --socket=/var/lib/mysql57/mysql.sock
    
  2. 如果需要设置默认连接方式,可以编辑 ~/.my.cnf 文件:

    [client]
    user=root
    socket=/var/lib/mysql57/mysql.sock
    
连接 MySQL 8.0
  1. 使用 sock 文件连接:

    mysql -u root -p --socket=/data/mysql8/mysql.sock
    
  2. 如果需要设置默认连接方式,可以编辑 ~/.my.cnf 文件:

    [client]
    user=root
    socket=/data/mysql8/mysql.sock
    

5. 常见问题排查

  1. 端口冲突

    • 确保每个 MySQL 实例使用不同的端口。
    • 检查防火墙规则是否允许访问。
  2. 文件路径冲突

    • 不同版本的 MySQL 必须使用不同的数据目录和 sock 文件。
  3. 权限问题

    • 确保 MySQL 数据目录和 sock 文件的所有者为 mysql 用户:
      chown -R mysql:mysql /path/to/datadir
      
  4. 日志问题

    • 检查日志文件以定位启动或连接失败的原因:
      • MySQL 5.7:/var/log/mysqld.log
      • MySQL 8.0:/data/mysql8/error.log

完成以上步骤后,你就可以在阿里云服务器上运行多个版本的 MySQL,并通过 root 用户使用 sock 文件连接了!

修改root密码

MySQL 修改 root 密码完整指南

以下是修改 MySQL root 密码的多种方法,适用于不同场景:

方法一:已知原密码时修改(推荐)
# 1. 登录MySQL
mysql -u root -p
# 输入当前密码# 2. 执行修改命令(MySQL 5.7+通用)
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
FLUSH PRIVILEGES;# 或使用旧语法(兼容老版本)
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码');
方法二:忘记密码时重置(安全模式)
# 1. 停止MySQL服务
sudo systemctl stop mysql  # 或 mysqld# 2. 启动无权限验证模式
sudo mysqld_safe --skip-grant-tables --skip-networking &# 3. 新终端窗口登录MySQL(无需密码)
mysql -u root# 4. 清除root密码(MySQL 5.7+)
UPDATE mysql.user SET authentication_string='' WHERE User='root';
FLUSH PRIVILEGES;
EXIT;# 5. 重启MySQL正常模式
sudo systemctl restart mysql# 6. 用空密码登录后设置新密码
mysql -u root -p  # 密码留空
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!';
方法三:使用 mysql_secure_installation(交互式)
sudo mysql_secure_installation
# 按提示操作,包含密码修改选项
方法四:配置文件初始化(MySQL 8.0+)
# 1. 创建临时配置文件
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!';" > /tmp/reset.sql# 2. 使用--init-file参数启动
sudo systemctl stop mysql
sudo mysqld --init-file=/tmp/reset.sql &# 3. 重启服务
sudo systemctl restart mysql
方法五:数据库初始化后获取默认密码
# 查询初始密码
grep 'temporary password' /var/log/mysql/error.log
不同版本注意事项
版本密码字段修改命令
MySQL 5.6passwordSET PASSWORD=...
MySQL 5.7authentication_stringALTER USER...
MySQL 8.0authentication_string必须用ALTER USER语法
常见问题解决
  1. 权限错误 1045
    检查用户是否存在:

    SELECT User, Host FROM mysql.user;
    

    可能需要指定主机名:

    ALTER USER 'root'@'%' IDENTIFIED BY '新密码';
    
  2. 插件认证错误
    修改认证方式:

    ALTER USER 'root'@'localhost' 
    IDENTIFIED WITH mysql_native_password BY '新密码';
    
  3. 修改远程root密码

    ALTER USER 'root'@'%' IDENTIFIED BY '远程密码';
    
安全建议
  1. 密码复杂度:至少12位,含大小写字母、数字和特殊符号
  2. 定期更换:建议每90天修改一次
  3. 限制root远程访问:
    DELETE FROM mysql.user WHERE User='root' AND Host='%';
    FLUSH PRIVILEGES;
    

通过以上方法,您可以灵活应对各种密码修改场景。建议优先使用ALTER USER语法(MySQL 5.7+),这是最标准和安全的方式。

创建用户并授权

在 MySQL 中创建用户并授权是数据库安全管理的基础操作。以下是 详细步骤及常用命令,涵盖主流版本(MySQL 5.7+ 和 8.0+):

一、创建用户

1. 基础命令
CREATE USER '用户名'@'允许访问的主机' IDENTIFIED BY '密码';

关键参数
用户名:登录名(如 webuser)。
允许访问的主机
localhost:仅允许本地连接。
%:允许所有远程 IP。
192.168.1.%:允许特定 IP 段。
密码:建议使用强密码(如 P@ssw0rd!)。

2. 示例
-- 允许从任意 IP 连接的用户
CREATE USER 'admin'@'%' IDENTIFIED BY 'Secure123!';-- 仅允许本地连接的用户(无密码)
CREATE USER 'backup'@'localhost' IDENTIFIED BY '';

二、授予权限

1. 基础语法
GRANT 权限类型 ON 数据库.TO '用户名'@'主机';

权限类型
全局权限ALL PRIVILEGES(所有权限)、CREATE USER
数据库权限SELECTINSERTUPDATEDELETEDROP 等。
表/列权限GRANT SELECT (列1, 列2) ON 数据库.表 TO 用户

2. 常用授权示例
-- 授予所有数据库的全部权限(慎用!)
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';-- 授予特定数据库的读写权限
GRANT SELECT, INSERT, UPDATE, DELETE ON shopdb.* TO 'webuser'@'192.168.1.%';-- 授予存储过程执行权限
GRANT EXECUTE ON PROCEDURE mydb.myprocedure TO 'user'@'localhost';
3. 立即生效
FLUSH PRIVILEGES;  -- 刷新权限

三、查看和验证权限

1. 查看用户权限
SHOW GRANTS FOR '用户名'@'主机';
-- 示例
SHOW GRANTS FOR 'webuser'@'192.168.1.%';
2. 查看所有用户
SELECT user, host FROM mysql.user;

四、撤销权限

1. 撤销指定权限
REVOKE 权限类型 ON 数据库.FROM '用户名'@'主机';
-- 示例
REVOKE DELETE ON shopdb.* FROM 'webuser'@'192.168.1.%';
2. 撤销所有权限
REVOKE ALL PRIVILEGES, GRANT OPTION FROM '用户名'@'主机';

五、删除用户

DROP USER '用户名'@'主机';
-- 示例
DROP USER 'olduser'@'%';
``
### **六、安全最佳实践**
1. **最小权限原则**:按需授予权限,避免使用 `ALL PRIVILEGES`2. **限制访问源**:禁止滥用 `%`,按业务需求限制 IP 范围。
3. **定期审计权限**```sql-- 检查具有超级权限的用户SELECT user, host FROM mysql.user WHERE Super_priv = 'Y';
  1. 密码策略(MySQL 8.0+):
    -- 设置密码强度策略
    SET GLOBAL validate_password.policy = STRONG;
    

七、常见问题解决

问题 1:用户无法远程连接

检查项
• 用户授权的主机是否为 %
• MySQL 配置文件中 bind-address 是否为 0.0.0.0
• 防火墙是否开放 3306 端口。

问题 2:权限未生效

强制刷新

FLUSH PRIVILEGES;
问题 3:MySQL 8.0 认证失败

兼容旧客户端

ALTER USER '用户'@'主机' IDENTIFIED WITH mysql_native_password BY '新密码';

八、权限对照表

权限类型作用范围说明
SELECT表/列读取数据
INSERT表/列插入数据
UPDATE表/列修改数据
DELETE删除数据
CREATE数据库/表创建新数据库或表
DROP数据库/表删除数据库或表
GRANT OPTION全局允许用户授予自己的权限给他人
SUPER全局高级管理权限(慎用)

通过以上步骤,您可以精确控制 MySQL 用户的访问权限,确保数据库安全。建议配合定期备份和日志审计,构建完整的安全体系。

关键字:微信自助建站系统_合肥黄页_友情链接代码模板_搜索引擎谷歌入口

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: