MySQL默认是关闭远程用户访问的,比如要在本地使用navicat等工具远程连接数据库会出现无法访问的情况
这是因为需要在mysql库的user表中新建一个Host为%的用户,%代表所有用户
一定不要修改默认的Host=localhost为%,否则会出现宝塔面板无法管理数据库的情况
下面整段sql语句直接复制到phpAdmin中执行即可
-- 宝塔新建所有用户连接
SET @sql = NULL;
-- 生成包含所有列的 INSERT ... SELECT 语句
SELECTGROUP_CONCAT(COLUMN_NAME) INTO @columns
FROMINFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA ='mysql' AND TABLE_NAME = 'user';
SET @sql = CONCAT(
'INSERT INTO mysql.user (', @columns, ') ',
'SELECT ', REPLACE(@columns, 'Host','"%"'), ' FROM mysql.user WHERE Host = ''localhost'' AND User =''root'';'
);
-- 执行动态SQL
PREPARE stmt FROM@sql;
EXECUTE stmt;
DEALLOCATE PREPAREstmt;
-- 刷新权限
FLUSH PRIVILEGES;