2013-05-01 59 views
11

Tôi đã cố tạo DB của mình bằng Symfony2. Tôi gõ lệnh:SQLSTATE [28000] [1045] Truy cập bị từ chối cho người dùng 'root' @ 'localhost' (sử dụng mật khẩu: YES) Symfony2

php app/console doctrine:create:database 

Kết quả là:

Could not create database for connection named `jobeet` 
SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: YES) 

Nội dung của file app/config/parameters.yml của tôi là:

parameters: 
    database_driver: pdo_mysql 
    database_host:  127.0.0.1 
    database_port:  ~ 
    database_name:  jobeet 
    database_user:  root 
    database_password: 0000 

    mailer_transport: smtp 
    mailer_host:  127.0.0.1 
    mailer_user:  ~ 
    mailer_password: ~ 

    locale:   fr 
    secret:   ThisTokenIsNotSoSecretChangeIt 

OS của tôi là Ubuntu.

Tôi không biết phải làm gì để khắc phục vấn đề này.

Cảm ơn sự giúp đỡ của bạn.

+5

Truy cập bị từ chối cho người dùng 'root' @ 'localhost' (sử dụng mật khẩu: YES) là một lỗi kết nối MySQL. Thường ngụ ý người dùng và/hoặc mật khẩu không hợp lệ. Đôi khi bạn phải sử dụng localhost không 127.0.0.1 để làm việc này. – rncrtr

+1

Mật khẩu có phải là dấu ngoặc kép không? –

+3

Xin chúc mừng !!! Mật khẩu cần phải nhập dấu ngoặc kép. Cảm ơn nhiều!! Làm cách nào để đăng bài này ở trạng thái được giải quyết? – mentaga

Trả lời

12

Cố gắng đăng nhập thông qua các thiết bị đầu cuối sử dụng lệnh sau:

mysql -u root -p 

Sau đó nó sẽ nhắc cho mật khẩu của bạn. Nếu điều này không thành công, thì chắc chắn tên người dùng hoặc mật khẩu không chính xác. Nếu công trình này hoạt động, mật khẩu của cơ sở dữ liệu của bạn cần phải được bao gồm trong dấu ngoặc kép:

database_password: "0000" 
+2

Tôi có thể đăng nhập qua thiết bị đầu cuối đến máy chủ mysql của mình. Tôi không nghĩ rằng vấn đề từ người dùng và mật khẩu. Tôi đã cố gắng tạo DB của tôi từ 2 giờ mà không cần kết quả – mentaga

+0

Trong trường hợp này, hãy thử thiết lập: database_port: '3306' –

+3

Tôi thêm số cổng 3306 và tôi đã từng gặp vấn đề tương tự – mentaga

2

Ok, vì vậy điều này có thể không khắc phục được sự cố của bạn nhưng nó chắc chắn có hiệu quả đối với tôi.

Bạn đã tạo người dùng Mysql của mình? Đi đến đặc quyền của người dùng trên PhpMyAdmin và nhấp vào chỉnh sửa bên cạnh người dùng bạn sử dụng cho Symfony. Cuộn xuống gần phía dưới và nơi nó nói máy chủ nào bạn muốn sử dụng đảm bảo rằng bạn đã chọn LocalHost không phải là% Any.

Sau đó, trong tệp cấu hình của bạn hoán đổi 127.0.0.1 cho máy chủ cục bộ. Hy vọng rằng sẽ làm việc cho bạn. Chỉ làm việc cho tôi khi tôi gặp vấn đề tương tự.

0

Tôi đã gặp sự cố tương tự khi kết nối với cơ sở dữ liệu MySQL OpenSUSE 13.1 với LibreOffice. Cập nhật LibreOffice lên gói "Still" ổn định mới nhất, sau đó đảm bảo rằng cơ sở dữ liệu có thể truy cập bằng cách sử dụng một công cụ như phpMyAdmin. Đảm bảo người dùng của bạn được liên kết với localhost chứ không phải "%" (bất kỳ) nào. Điều này làm việc cho tôi, tôi có thể thêm dữ liệu thông qua LibreOffice.

Lưu ý phụ - Cơ sở LibreOffice sẽ không cung cấp "kết nối gốc" thông qua MySQL trong lần thử đầu tiên, bạn sẽ cần sử dụng nút quay lại, sau đó thử lại để xem các tùy chọn.

Hy vọng điều này sẽ hữu ích.

3

Trong bạn app/config/parameters.yml

# This file is auto-generated during the composer install 
parameters: 
    database_driver: pdo_mysql 
    database_host: 127.0.0.1 
    database_port: 3306 
    database_name: symfony 
    database_user: root 
    database_password: "your_password" 
    mailer_transport: smtp 
    mailer_host: 127.0.0.1 
    mailer_user: null 
    mailer_password: null 
    locale: en 
    secret: ThisTokenIsNotSoSecretChangeIt 

database_password nên được bên trong đôi trích dẫn (") hoặc đơn niêm yết (').

Tôi đã thấy hầu hết người dùng xảy ra điều này bởi vì họ đang sử dụng mật khẩu có số 0 hoặc số 0 đứng đầu (trong tình huống của tôi giống như vậy)

+1

Thật vậy @Nadun Liyanage thực sự đúng, cơ sở dữ liệu mật khẩu phải ở giữa "" như thế này ví dụ "0000", bởi vì đó là một chuỗi. –

+0

Anh ấy thực sự đúng. Ồ cảm ơn nhé! Kỳ lạ là máy chủ tích hợp của Symfony 3 được chấp nhận không có dấu ngoặc kép. Sử dụng nginx Tôi thực sự cần báo giá này nếu không nó không hoạt động -> Truy cập bị từ chối cho vấn đề người dùng. – danger89

5

Tôi không biết lý do chính xác nhưng tôi đã giải quyết được sự cố đang chạy:

app/console cache:clear --env=prod 
+0

Ngớ ngẩn đủ điều này đã làm cho nó quá. Tôi nghĩ rằng tôi có thể sửa lỗi trước đó với bất kỳ thứ gì tôi đã thử và không có hiệu lực cho đến khi tôi xóa bộ nhớ cache ... cảm ơn;) – mezod

2

Bạn cần đặt mật khẩu cho [email protected] để trống.Có hai cách:

  • Các MySQL SET PASSWORD lệnh:

    SET PASSWORD FOR [email protected]=PASSWORD(''); 
    
  • Sử dụng dòng lệnh mysqladmin công cụ:

    mysqladmin -u root -pCURRENTPASSWORD password '' 
    
+0

Cảm ơn bạn đã tiết kiệm cho tôi đau đầu thực - đầu tiên tôi đã thử với MariaDB nhưng sau đó loại bỏ nó, sau đó đã có vấn đề mysql.sock, và sau đó các vấn đề quyền vv Điều này cuối cùng đã giải quyết nó cho tôi. – SMT

Các vấn đề liên quan