温馨提示×

centos sqladmin如何恢复

小樊
40
2025-12-19 16:20:55
栏目: 云计算

先明确 sqladmin 的含义与恢复目标

  • CentOS 环境中,sqladmin 常被用来指代三类对象:
    1. MySQL 的管理员账户或管理工具(如 phpMyAdmin 等 Web 管理端)。
    2. Microsoft SQL Server 的管理员账户 sa(或 SSMS 连接问题)。
    3. 某些第三方或自研的名为 sqladmin 的服务/应用。
  • 不同对象的“恢复”含义不同:账户密码恢复、数据库备份恢复、或应用配置与服务恢复。下文按这三类分别给出可操作步骤。

MySQL 场景的恢复步骤

  • 场景 A 恢复 MySQL 管理员账户(如 sqladmin 用户)

    1. 先获取系统权限并登录数据库:
      • 方式一:sudo 到 root 后执行:mysql -u root -p
      • 方式二:若 root 本机可登录但远程受限,可先用本机 root 登录再授权远程。
    2. 检查并重建用户(若不存在则创建,存在则改密):
      • 查看用户:SELECT User, Host FROM mysql.user WHERE User=‘sqladmin’;
      • 创建或覆盖:CREATE USER ‘sqladmin’@‘localhost’ IDENTIFIED BY ‘YourStrongP@ssw0rd’;
      • 授权:GRANT ALL PRIVILEGES ON . TO ‘sqladmin’@‘localhost’ WITH GRANT OPTION;
      • 如需远程:CREATE USER ‘sqladmin’@‘%’ IDENTIFIED BY ‘YourStrongP@ssw0rd’; GRANT ALL PRIVILEGES ON . TO ‘sqladmin’@‘%’ WITH GRANT OPTION;
      • 刷新权限:FLUSH PRIVILEGES;
    3. 若忘记 root 密码,可临时跳过权限表启动 mysqld(以 systemd 为例):
      • systemctl stop mysqld
      • mysqld_safe --skip-grant-tables --skip-networking &
      • mysql -u root 登录后执行:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘NewRootP@ss’;
      • 退出并重启:systemctl restart mysqld
    4. 验证:mysql -u sqladmin -p -h 127.0.0.1 是否能登录,以及权限是否正确。
  • 场景 B 恢复 MySQL 数据库(使用 mysqldump 逻辑备份)

    1. 准备备份文件(示例:/backups/db_full.sql),确认文件完整可读。
    2. 恢复前建议先置于维护状态(可选):SET GLOBAL read_only=ON;(避免业务写入)
    3. 执行导入:mysql -u root -p < /backups/db_full.sql
    4. 校验:SHOW DATABASES LIKE ‘your_db’; 或查询关键表数据行数。
  • 场景 C 使用物理备份工具 Percona XtraBackup 恢复整个实例

    1. 准备阶段:xtrabackup --prepare --target-dir=/backups/full_backup
    2. 停库:mysqladmin -uroot -p shutdown
    3. 清空数据目录(危险!确保有可用备份):rm -rf /var/lib/mysql/*
    4. 拷贝回数据:xtrabackup --copy-back --target-dir=/backups/full_backup
    5. 修复权限:chown -R mysql:mysql /var/lib/mysql
    6. 启动:systemctl start mysqld 或 mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &
    7. 登录验证:mysql -uroot -p。

Microsoft SQL Server 场景的恢复步骤

  • 场景 A 恢复 sa 管理员账户(适用于 CentOS 上的 mssql-server)

    1. 使用 sqlcmd 本地连接(以本机 sa 或具有 sysadmin 的账户):
      • sqlcmd -S 127.0.0.1 -U sa -P ‘<当前密码>’
    2. 修改 sa 密码并解锁账户:
      • ALTER LOGIN sa WITH PASSWORD = ‘NewStrongP@ssw0rd’;
      • ALTER LOGIN sa ENABLE;
    3. 若忘记 sa 密码且无法登录,可用安装介质进入“修复/恢复”模式修复实例,或先启用混合身份验证、添加新 sysadmin 后再改回 sa 密码。完成后重启服务:systemctl restart mssql-server。
  • 场景 B 从 .bak 文件恢复数据库

    1. 将备份文件(如 StackOverflow2010.bak)上传至 CentOS(如 /SQLServer/SQLBackup/)。
    2. 使用 sqlcmd 执行还原(注意将数据和日志文件路径改为 Linux 路径,且目录需 mssql 可写):
      • RESTORE DATABASE [StackOverflow2010] FROM DISK = N’/SQLServer/SQLBackup/StackOverflow2010.bak’ WITH FILE = 1, MOVE N’StackOverflow2010’ TO N’/var/opt/mssql/data/StackOverflow2010.mdf’, MOVE N’StackOverflow2010_log’ TO N’/var/opt/mssql/data/StackOverflow2010_log.ldf’, STATS = 5;
    3. 验证:SELECT name FROM sys.databases WHERE name=‘StackOverflow2010’;。

名为 sqladmin 的服务或应用的恢复步骤

  • 若 sqladmin 是系统中的一个服务(例如自研或第三方管理工具):
    1. 确认服务名并重启:
      • 查看:systemctl list-units --type=service | grep sqladmin
      • 重启:sudo systemctl restart sqladmin(若服务名不同,请替换为实际名称)。
    2. 若服务异常或配置损坏,优先从版本控制或安装包重新部署应用文件,再恢复配置与数据目录,最后启动服务并校验日志。

关键注意事项

  • 操作前务必做好完整备份(配置文件、数据目录、密钥等),并在非生产环境演练。
  • 执行危险操作(如清空数据目录、修改账户密码)前,确认备份可用、回滚路径清晰。
  • 权限与路径需与实际的 MySQL 配置(my.cnf)SQL Server 数据目录一致;Linux 下注意目录属主为 mysql:mssql 且权限正确。
  • 若你不确定 sqladmin 的具体指代,请先确认是 MySQL 账户/数据库SQL Server sa/数据库,还是 某个服务/应用,再按对应步骤执行。

0