2012-08-01 45 views
28

Tôi vừa cài đặt xampp và đang sử dụng dòng lệnh để viết mySQL. Tôi đang sử dụng 'root' không có mật khẩu và có thể kết nối với mysql nhưng không thể CREATE DATABASE khi tôi gặp lỗi 1044 access denied for user '' @ 'localhost'. Tôi đăng nhập là -uroot.Truy cập bị từ chối cho người dùng root trong dòng lệnh MySQL

Tôi có đặc quyền trong phpMyadmin để làm những gì tôi muốn, nhưng, trong dòng lệnh tôi dường như không có đặc quyền ghi. Tôi đã xem tất cả các bài viết liên quan khác về chủ đề này nhưng không có kết quả. Tôi không thể GRANT đặc quyền như tôi không có anyway.

+0

tôi trên cửa sổ btw – gavin

+0

Mở công cụ dòng lệnh MySQL, khi bạn nhấp vào nó, nó sẽ mở ra và yêu cầu mật khẩu, bạn có thể để đăng nhập thành công? – Shubhansh

+0

Xin chào. Tôi không được nhắc cho bất cứ điều gì, tôi chỉ cần điều hướng đến C: \ xampp \ mysql \ bin \ mysql -u root; – gavin

Trả lời

0

tôi cài đặt lại các ODBC kết nối msi và tái cài đặt mySQL trực tiếp (ngoài xampp) và nó hiện đang làm việc.Đó là một vấn đề kết nối tôi nghĩ, như SHOW DATABASES đã không thực sự hiển thị cơ sở dữ liệu của tôi cả.

Đăng nhập 'gốc' của tôi không nhận được quyền truy cập vào DB, điều này có vẻ như nó có giới hạn về quyền riêng tư nhưng thực sự không được kết nối đúng cách.

-2

Bạn không phải có một nhân vật không gian giữa -u và tên người dùng:

mysql -uroot -p 
# or 
mysql --user=root --password 
+0

Xin chào. Tôi vừa thử điều đó và tôi vẫn gặp lỗi tương tự. Có nên nói: "Acess bị từ chối vì 'root' @ 'localhost'"? thay vì người dùng: ''? Tôi không chắc mình đã đăng nhập dưới dạng 'root' – gavin

8

điều hướng làm C: \ xampp \ mysql \ bin \ và chắc chắn rằng file mysql.exe là trong thư mục đó.

mysql -uroot -p 

nếu không có mật khẩu, chỉ cần nhấn enter.

những thay đổi kịp thời để

mysql> 

làm mysql của bạn lệnh

+0

SHOW DATABASE; - hoạt động này – gavin

+0

TẠO DATABASE db; - Điều này trả về lỗi – gavin

+0

btw Tôi đã sử dụng dòng lệnh của cửa sổ và hiện đang sử dụng dòng lệnh mysql.Dù bằng cách nào, chúng cũng giống như vậy: – gavin

58

Bạn đang đăng nhập vào MySQL là root? Bạn phải cấp quyền rõ ràng cho tài khoản người dùng MySQL "thông thường" của mình khi đăng nhập dưới dạng gốc MySQL.

Trước tiên hãy thiết lập tài khoản gốc cho cơ sở dữ liệu MySQL của bạn.

Trong các loại thiết bị đầu cuối:

mysqladmin -u root password 'password' 

Để đăng nhập vào MySQL, sử dụng này:

mysql -u root -p 

Để thiết lập các đặc quyền tự khởi động server với các tùy chọn bỏ qua-cấp-bàn, mysql mở khách hàng và cập nhật thủ công bảng mysql.user và/hoặc các bảng mysql.db. Điều này có thể là một nhiệm vụ tẻ nhạt mặc dù vậy nếu những gì bạn cần là một tài khoản với tất cả các privs tôi sẽ làm như sau.

Khởi động máy chủ với skip-grant-tables tùy chọn

khách hàng Bắt đầu mysql (không có tên người dùng/mật khẩu)

Issue lệnh

flush privileges; 

mà buộc các bảng cấp được nạp.

Tạo một tài khoản mới với một cái gì đó lệnh GRANT như thế này (nhưng thay tên truy cập và mật khẩu với bất cứ điều gì bạn muốn sử dụng.

GRANT ALL on *.* to 'username'@'localhost' identified by 'password'; 

Khởi động lại máy chủ trong chế độ bình thường (không skip-cấp-bàn) và đăng nhập với tài khoản vừa tạo.

tham khảo this tài liệu MySQL.

+0

Cảm ơn, Jacob. Trên thực tế tôi đã cài đặt lại MSI của trình kết nối ODBC và cài đặt lại mySQL trực tiếp (ngoài xampp) và nó bây giờ hoạt động. Đó là một vấn đề kết nối tôi nghĩ, như SHOW DATABASES đã không thực sự hiển thị cơ sở dữ liệu của tôi cả. Đăng nhập 'root' của tôi không nhận được quyền truy cập vào DB, điều này làm cho nó có vẻ như có các đặc quyền hạn chế nhưng nó không được kết nối đúng cách. Đây là công cụ hữu ích trong tương lai, mặc dù - cảm ơn. – gavin

4

Theo mặc định, không có mật khẩu nào được đặt cho người dùng root trong XAMPP.

Bạn có thể đặt mật khẩu cho người dùng root của MySQL.

Navigate to

localhost: 80/security/index.php

và thiết lập mật khẩu cho tài khoản root.

Lưu ý: Vui lòng thay đổi số cổng trong url ở trên nếu Apache của bạn ở trên cổng khác.

mở XAMPP Control Panel Click vào nút "Shell"

cửa sổ Command prompt sẽ mở ra bây giờ trong đó loại cửa sổ

mysql -u root -p; 

Nó sẽ yêu cầu mật khẩu gõ mật khẩu mà bạn có đặt cho người dùng root.

Có bạn đi ur đăng nhập như người dùng root: D Bây giờ làm những gì u muốn làm: P

-1

này có thể giúp trên Ubuntu:

đi đến /etc/mysql/my.cnf và bình luận dòng này:

bind-address   = 127.0.0.1 

Hope this helps ai đó, tôi đã tìm kiếm một này trong khi quá

Cheers

0

tập tin Server chỉ chane thư mục tên
etc/mysql
đổi tên
mysql-

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