After solving compiling errors, another issue came out in the database connection test.
The Erl-MySQL-Driver is cloned from git and re-compiled under the local environment.
Then I entered the Erlang shell and tried to connect to my database (pls ignore the unsafe password..), then the ERROR REPORT showed a connection time-out error.
[root@perryhost ~]#erl
Erlang/OTP 24 [erts-12.1.5] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1]
Eshell V12.1.5 (abort with ^G)
1> mysql:start_link("test", "localhost", "3306", "root", "123456", "sdzmmo").
=ERROR REPORT==== 9-Dec-2021::23:24:09.886253 ===
Error in process <0.85.0> with exit value:
{function_clause,[{mysql_recv,start_link,
["localhost","3306",#Fun<mysql.0.19863791>,
<0.85.0>],
[{file,"src/lib/mysql/mysql_recv.erl"},
{line,67}]},
{mysql_conn,init,9,
[{file,"src/lib/mysql/mysql_conn.erl"},
{line,315}]}]}
mysql:503: failed starting first MySQL connection handler, exiting
{error,{error,"timed out"}}
As the stack above mentioned, this cmd failed to start the first MySQL connection handler. Does this info mean that my DB is not using a proper configuration? Or the Erlang drive is quoted incorrectly?
All config tags in my.cnf are listed below:
[mysqld]
# innodb_buffer_pool_size = 128M
# log_bin
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
Installed MySQL version is:
[root@ perryhost ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.36 MySQL Community Server (GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
1条答案
按热度按时间voj3qocg1#
mysql_recv:start_link
的第一行如下所示:也就是说,它需要以整数形式传递端口号。在调用函数时,请尝试使用
3306
而不是"3306"
。