Goal
cục bộ trên tôi Mac OS, tôi đang cố gắng để kết nối với cơ sở dữ liệu dàn tôi đang chạy và lưu trữ trên Ubuntu VM của tôi.Connect để dàn dựng cơ sở dữ liệu từ một môi trường địa phương - Laravel 5
bước
Trong tôi config/database.php
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST'),
'database' => env('DB_DATABASE'),
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
'unix_socket' => env('UNIX_SOCKET'), <---- Need it here
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
]
],
Trong .env của tôi, tôi có
DB_HOST=45.55.88.88
DB_DATABASE=staging
DB_USERNAME=john
DB_PASSWORD=***
UNIX_SOCKET=/var/run/mysqld/mysqld.sock <---- I'm not sure what to put here
Tôi không chắc chắn những gì để PUT như UNIX_SOCKET của tôi kể từ khi database.php cần nó.
tôi giữ lấy
SQLSTATE[HY000] [2002] No such file or directory
Tôi tin rằng bởi vì con đường của tôi đến UNIX_SOCKET là sai.
Câu hỏi
Làm thế nào người ta sẽ đi về và cấu hình một cái gì đó như thế này?
Làm cách nào để tiếp tục và gỡ lỗi thêm?
Tôi đang mở cho bất kỳ đề xuất nào vào lúc này.
Bất kỳ gợi ý/đề xuất/trợ giúp nào về điều này sẽ được nhiều người đánh giá cao!
Cập nhật
Căn cứ vào câu trả lời @dparoli 's. Tôi cập nhật cấu hình cơ sở dữ liệu của mình không sử dụng UNIX_SOCKET nữa.
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST'),
'database' => env('DB_DATABASE'),
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
'port' => env('DB_PORT', '3306'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
]
],
bây giờ tôi đã
PDOException trong Connector.php dòng 49: SQLSTATE [HY000] [2002] Operation timed out
Tôi đã cố gắng tìm kiếm hơn vào cài đặt của staging
VM
sshd_config của tôi
Sẽ /etc/ssh/sshd_config
có chơi bất kỳ vai trò nào trong số này không? Có phải vì tôi đã vô hiệu hóa đăng nhập mật khẩu và chỉ cho phép đăng nhập qua khóa công khai không?
Tôi đã thử cả hai
PasswordAuthentication không
và
PasswordAuthentication có
netstat
Tôi chạy netstat -ln
, tôi đã
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:17123 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:11300 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
...
tôi thấy 0 0.0.0.0:3306 đó.
php.ini
max_execution_time = 60
and
memory_limit = 1000M
/etc/mysql/my.cnf
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
# Here is entries for some specific programs
# The following values assume you have at least 32M ram
# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = *
#
# * Fine Tuning
#
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover = BACKUP
#max_connections = 100
#table_cache = 64
#thread_concurrency = 10
#
# * Query Cache Configuration
#
query_cache_limit = 1M
query_cache_size = 16M
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file = /var/log/mysql/mysql.log
#general_log = 1
#
# Error log - should be very few entries.
#
log_error = /var/log/mysql/error.log
#
# Here you can see queries with especially long duration
#log_slow_queries = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
# other settings you may need to change.
#server-id = 1
#log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
[mysql]
#no-auto-rehash # faster start of mysql but no tab completition
[isamchk]
key_buffer = 16M
#
# * IMPORTANT: Additional settings that can override those from this file!
# The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/
____
quả
PDOException trong Connector.php dòng 49: SQLSTATE [HY000] [2002] Hoạt động hết thời gian
Làm cách nào để ngăn chặn điều đó?
Tôi có thể kiểm tra hoặc thử những gì khác?
Tôi không nghĩ bạn có thể kết nối với máy chủ từ xa bằng ổ cắm unix. Những gì bạn có thể làm là thiết lập một đường hầm SSH và kết nối với localhost trên cổng tunnel. –
Bạn đã kiểm tra quyền truy cập MySQL của mình chưa, thông tin đăng nhập người dùng bạn đã nhập có được phép từ máy chủ lưu trữ mà bạn đang cố gắng truy cập không? –
@ChrisTownsend: Suy nghĩ tốt !!! Tôi đã thử và tôi đã nhận 'ERROR 2003 (HY000): Không thể kết nối với máy chủ MySQL trên '45 .55.88.88 '(60)' – ihue