centos sqladmin如何恢复
导读:先明确 sqladmin 的含义与恢复目标 在 CentOS 环境中,sqladmin 常被用来指代三类对象: MySQL 的管理员账户或管理工具(如 phpMyAdmin 等 Web 管理端)。 Microsoft SQL Serve...
先明确 sqladmin 的含义与恢复目标
- 在 CentOS 环境中,sqladmin 常被用来指代三类对象:
- MySQL 的管理员账户或管理工具(如 phpMyAdmin 等 Web 管理端)。
- Microsoft SQL Server 的管理员账户 sa(或 SSMS 连接问题)。
- 某些第三方或自研的名为 sqladmin 的服务/应用。
- 不同对象的“恢复”含义不同:账户密码恢复、数据库备份恢复、或应用配置与服务恢复。下文按这三类分别给出可操作步骤。
MySQL 场景的恢复步骤
-
场景 A 恢复 MySQL 管理员账户(如 sqladmin 用户)
- 先获取系统权限并登录数据库:
- 方式一:sudo 到 root 后执行:mysql -u root -p
- 方式二:若 root 本机可登录但远程受限,可先用本机 root 登录再授权远程。
- 检查并重建用户(若不存在则创建,存在则改密):
- 查看用户: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;
- 若忘记 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
- 验证:mysql -u sqladmin -p -h 127.0.0.1 是否能登录,以及权限是否正确。
- 先获取系统权限并登录数据库:
-
场景 B 恢复 MySQL 数据库(使用 mysqldump 逻辑备份)
- 准备备份文件(示例:/backups/db_full.sql),确认文件完整可读。
- 恢复前建议先置于维护状态(可选):SET GLOBAL read_only=ON; (避免业务写入)
- 执行导入:mysql -u root -p < /backups/db_full.sql
- 校验:SHOW DATABASES LIKE ‘your_db’; 或查询关键表数据行数。
-
场景 C 使用物理备份工具 Percona XtraBackup 恢复整个实例
- 准备阶段:xtrabackup --prepare --target-dir=/backups/full_backup
- 停库:mysqladmin -uroot -p shutdown
- 清空数据目录(危险!确保有可用备份):rm -rf /var/lib/mysql/*
- 拷贝回数据:xtrabackup --copy-back --target-dir=/backups/full_backup
- 修复权限:chown -R mysql:mysql /var/lib/mysql
- 启动:systemctl start mysqld 或 mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &
- 登录验证:mysql -uroot -p。
Microsoft SQL Server 场景的恢复步骤
-
场景 A 恢复 sa 管理员账户(适用于 CentOS 上的 mssql-server)
- 使用 sqlcmd 本地连接(以本机 sa 或具有 sysadmin 的账户):
- sqlcmd -S 127.0.0.1 -U sa -P ‘< 当前密码> ’
- 修改 sa 密码并解锁账户:
- ALTER LOGIN sa WITH PASSWORD = ‘NewStrongP@ssw0rd’;
- ALTER LOGIN sa ENABLE;
- 若忘记 sa 密码且无法登录,可用安装介质进入“修复/恢复”模式修复实例,或先启用混合身份验证、添加新 sysadmin 后再改回 sa 密码。完成后重启服务:systemctl restart mssql-server。
- 使用 sqlcmd 本地连接(以本机 sa 或具有 sysadmin 的账户):
-
场景 B 从 .bak 文件恢复数据库
- 将备份文件(如 StackOverflow2010.bak)上传至 CentOS(如 /SQLServer/SQLBackup/)。
- 使用 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;
- 验证:SELECT name FROM sys.databases WHERE name=‘StackOverflow2010’; 。
名为 sqladmin 的服务或应用的恢复步骤
- 若 sqladmin 是系统中的一个服务(例如自研或第三方管理工具):
- 确认服务名并重启:
- 查看:systemctl list-units --type=service | grep sqladmin
- 重启:sudo systemctl restart sqladmin(若服务名不同,请替换为实际名称)。
- 若服务异常或配置损坏,优先从版本控制或安装包重新部署应用文件,再恢复配置与数据目录,最后启动服务并校验日志。
- 确认服务名并重启:
关键注意事项
- 操作前务必做好完整备份(配置文件、数据目录、密钥等),并在非生产环境演练。
- 执行危险操作(如清空数据目录、修改账户密码)前,确认备份可用、回滚路径清晰。
- 权限与路径需与实际的 MySQL 配置(my.cnf) 或 SQL Server 数据目录一致;Linux 下注意目录属主为 mysql:mssql 且权限正确。
- 若你不确定 sqladmin 的具体指代,请先确认是 MySQL 账户/数据库、SQL Server sa/数据库,还是 某个服务/应用,再按对应步骤执行。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos sqladmin如何恢复
本文地址: https://pptw.com/jishu/776930.html
