mysql在Ubuntu上使用Snap安装并配置MySQL

Snap安装的MySQL默认不启用服务且无传统my.cnf配置入口,须用snap set修改参数;root用户默认用auth_socket认证,需通过socket连接并执行ALTER USER切换密码认证;备份仅支持mysqldump。

mysql在ubuntu上使用snap安装并配置mysql

Snap安装的MySQL在Ubuntu上无法启动

Snap包管理器安装的mysql(实际是mysql-server)默认不启用服务,且监听地址绑定为127.0.0.1:3306,但更关键的是:Snap版本的MySQL**不提供传统/etc/mysql/my.cnf配置入口**,所有配置必须通过snap set命令修改。直接编辑/var/snap/mysql/common/my.cnf会被忽略,重启后还原。

  • 确认服务状态:snap services mysql —— 多数情况显示inactive
  • 启用服务:snap start mysql(不是systemctl start mysql
  • 查看日志定位失败原因:sudo snap logs mysql,常见报错如Can't start server: Bind on TCP/IP port: Address already in use,说明端口被其他MySQL实例(如apt安装版)占用

如何修改bind-address和root密码

Snap版MySQL不允许直接改my.cnf,所有运行时参数必须用snap set注入。但注意:部分参数(如bind-address)需配合mysql.server服务重启生效,且**不能设为0.0.0.0以外的值(如192.168.1.100)**,否则启动失败。

  • 开放远程访问:snap set mysql server.bind-address=0.0.0.0
  • 设置root密码(首次初始化后才生效):snap set mysql server.root-password="your_secure_password"
  • 重启服务使配置生效:snap restart mysql
  • 验证绑定:ss -tlnp | grep :3306 应显示*:3306而非127.0.0.1:3306

连接失败:Access denied for user ‘root’@’localhost’

Snap安装的MySQL默认使用auth_socket插件认证root用户,这意味着它**不校验密码,而是检查Unix socket所属用户**。当你用mysql -u root -p连接时,即使输对密码也会拒绝——因为客户端走TCP连接(localhost被解析为127.0.0.1),而auth_socket只认本地socket。

手机在线人工冲值

手机在线人工冲值

说明:我不知道这个系统还能用到什么地方!他的运作方式是这样的,客户在其他地方比如掏宝购买了 你得卡,然后在你的网站进行冲值,你得有人登陆并看着后台,如果有人冲值,就会刷出记录,手工冲值完毕后,你得点击 [冲值完毕],客户的页面 就会返回 冲值信息!安装:上传所有文件,倒入(sql.txt)mysql数据库,使用myphpadminphplib 777phplib/sys.php 777phplib

下载

  • 临时绕过:用mysql -S /var/snap/mysql/common/run/mysqld.sock -u root(走socket)
  • 永久切换为密码认证:
    mysql -S /var/snap/mysql/common/run/mysqld.sock -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES;"
  • 若需从远程连接,还需创建新用户:
    mysql -S /var/snap/mysql/common/run/mysqld.sock -u root -e "CREATE USER 'admin'@'%' IDENTIFIED BY 'strong_pass'; GRANT ALL ON *.* TO 'admin'@'%'; FLUSH PRIVILEGES;"

数据目录不可直接访问,备份需用mysqldump

Snap应用的数据严格隔离在/var/snap/mysql/common/下,且/var/snap/mysql/current/是只读符号链接。你无法直接复制ibdata1ib_logfile*做物理备份——Snap会阻止写入、挂载点权限受限。

  • 唯一可靠备份方式:mysqldump --socket=/var/snap/mysql/common/run/mysqld.sock -u root -p database_name > backup.sql
  • 恢复时注意socket路径:mysql --socket=/var/snap/mysql/common/run/mysqld.sock -u root -p database_name
  • 不要尝试chownchmod修改/var/snap/mysql下的任何文件,Snap守护进程会重置权限

Snap版MySQL省去了手动编译和依赖管理,但把配置权收归snapd,所有操作必须绕过传统Linux习惯。最易被忽略的点是:它没有systemctl服务单元,不响应/etc/mysql/下的任何改动,且socket路径固定为/var/snap/mysql/common/run/mysqld.sock——连这个路径写错一个字符都会导致连接失败。

https://www.php.cn/faq/2004738.html

发表回复

Your email address will not be published. Required fields are marked *