TinyWebServer icon indicating copy to clipboard operation
TinyWebServer copied to clipboard

使用 MySQL 8.0 执行 ./server 日志出现 MySQL Error

Open huangdi426 opened this issue 2 years ago • 5 comments

README 上推荐的 MySQL 版本是 5.7,但是自己虚拟机上的版本是 8.0,踩了个坑,说一下我的解决办法:

第一次运行的时候直接退出了,日志只显示了 MySQL Error 没有更多的信息,然后看了看其他的 Issues 把 localhost 改为 127.0.0.1,依然是 MySQL Error。

查看 sql_connection_pool.cpp,日志输出的内容是由于 mysql_real_connect() 这个函数返回为空导致。因为不知道具体错误是什么比较头疼,于是尝试把 MySQL 的错误直接打印出来:

// 稍微修改一下,不要让 mysql_real_connect 的返回值直接传给 conn
// con = mysql_real_connect(con, url.c_str(), User.c_str(), PassWord.c_str(), DBName.c_str(), Port, NULL, 0);
// if (con == NULL)
// {
  // LOG_ERROR("MySQL Error2");
  // exit(1);
// }
if (!mysql_real_connect(con, url.c_str(), User.c_str(), PassWord.c_str(), DBName.c_str(), Port, NULL, 0))
{
  cout << mysql_errno(con) << "   " << mysql_error(con) << endl;
  exit(1);
}

于是我得到了 Authentication plugin ‘caching_sha2_password’ cannot be loaded,错误码是 2059(没仔细琢磨,应该是 MySQL 8.0 才会遇到),可以自己搜一下解决方案,以下是我的办法:

mysql_error

然后就可以了。

huangdi426 avatar Nov 10 '21 10:11 huangdi426

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' 这个错误 该怎么办呢 用宝塔安装的 mysql

wgx-dh avatar Jan 18 '22 14:01 wgx-dh

我手动建了个软连接 /tmp/mysqld.sock 到 /var/run/mysqld/mysqld.sock

wgx-dh avatar Jan 18 '22 14:01 wgx-dh

thanks,救命了

yorilink avatar May 27 '22 05:05 yorilink

README 上推荐的 MySQL 版本是 5.7,但是自己虚拟机上的版本是 8.0,踩了个坑,说一下我的解决办法:

第一次运行的时候直接退出了,日志只显示了 MySQL Error 没有更多的信息,然后看了看其他的 Issues 把 localhost 改为 127.0.0.1,依然是 MySQL Error。

查看 sql_connection_pool.cpp,日志输出的内容是由于 mysql_real_connect() 这个函数返回为空导致。因为不知道具体错误是什么比较头疼,于是尝试把 MySQL 的错误直接打印出来:

// 稍微修改一下,不要让 mysql_real_connect 的返回值直接传给 conn
// con = mysql_real_connect(con, url.c_str(), User.c_str(), PassWord.c_str(), DBName.c_str(), Port, NULL, 0);
// if (con == NULL)
// {
  // LOG_ERROR("MySQL Error2");
  // exit(1);
// }
if (!mysql_real_connect(con, url.c_str(), User.c_str(), PassWord.c_str(), DBName.c_str(), Port, NULL, 0))
{
  cout << mysql_errno(con) << "   " << mysql_error(con) << endl;
  exit(1);
}

于是我得到了 Authentication plugin ‘caching_sha2_password’ cannot be loaded,错误码是 2059(没仔细琢磨,应该是 MySQL 8.0 才会遇到),可以自己搜一下解决方案,以下是我的办法:

mysql_error

然后就可以了。

不愧是大佬,我就是靠你这个搞定了

wuzhantu avatar Jul 23 '22 16:07 wuzhantu

README 上推荐的 MySQL 版本是 5.7,但是自己虚拟机上的版本是 8.0,踩了个坑,说一下我的解决办法:

第一次运行的时候直接退出了,日志只显示了 MySQL Error 没有更多的信息,然后看了看其他的 Issues 把 localhost 改为 127.0.0.1,依然是 MySQL Error。

查看 sql_connection_pool.cpp,日志输出的内容是由于 mysql_real_connect() 这个函数返回为空导致。因为不知道具体错误是什么比较头疼,于是尝试把 MySQL 的错误直接打印出来:

// 稍微修改一下,不要让 mysql_real_connect 的返回值直接传给 conn
// con = mysql_real_connect(con, url.c_str(), User.c_str(), PassWord.c_str(), DBName.c_str(), Port, NULL, 0);
// if (con == NULL)
// {
  // LOG_ERROR("MySQL Error2");
  // exit(1);
// }
if (!mysql_real_connect(con, url.c_str(), User.c_str(), PassWord.c_str(), DBName.c_str(), Port, NULL, 0))
{
  cout << mysql_errno(con) << "   " << mysql_error(con) << endl;
  exit(1);
}

于是我得到了 Authentication plugin ‘caching_sha2_password’ cannot be loaded,错误码是 2059(没仔细琢磨,应该是 MySQL 8.0 才会遇到),可以自己搜一下解决方案,以下是我的办法:

mysql_error

然后就可以了。

根据打印日志输出的错误,进一步调试。

zhangm365 avatar May 13 '23 13:05 zhangm365