2012-04-12 23 views
11

Tôi đang sử dụng Mac OS X Lion và chỉ cài đặt mysql5 bằng MacPorts.mysql5 - Khi 'root' không thể tạo cơ sở dữ liệu hoặc làm bất cứ điều gì (Access bị từ chối)

Sau đó, tôi chạy thành công:

sudo /opt/local/lib/mysql5/bin/mysql_install_db --user=mysql 

tôi có thể bắt đầu các máy chủ và kết nối như 'root' tốt, nhưng tôi không thể tạo ra bất kỳ cơ sở dữ liệu.

$ mysql5 -u root -p 
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 1 
Server version: 5.1.61 Source distribution 

mysql> create database dbname; 
ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'dbname' 

tôi đã thực hiện rất nhiều Googling cố gắng để con số này ra, và nó xuất hiện rằng vấn đề có thể phải làm gì với quyền hệ thống tập tin cho/opt/local/var/db/mysql5, nhưng tôi đã cố gắng thay đổi những vô ích:

$ ls -l /opt/local/var/db/ 
total 0 
drwxrwxrwx 8 _mysql _mysql 272 Apr 12 11:55 mysql5 

tôi đã thử nghiệm với chủ sở hữu là '_mysql', 'mysql', và 'root: wheel', nhưng không ai trong số họ đã thực hiện một sự khác biệt.

+2

Chào mừng bạn đến với StackOverflow. Cách thích hợp để đánh dấu điều này là đã được giải quyết (và làm cho câu trả lời rõ ràng hơn cho người đọc trong tương lai) là đăng giải pháp của bạn như là câu trả lời cho câu hỏi của riêng bạn. Sau một khoảng thời gian, bạn thậm chí có thể chấp nhận nó như là câu trả lời đúng cho câu hỏi của bạn. Vui lòng dành một vài phút để xem lại [FAQ] (http://stackoverflow.com/faq) để tự làm quen với cách SO được thiết kế để hoạt động; nó cũng đáng đọc, vì SO là một nguồn tài nguyên tuyệt vời. :) (BTW, câu hỏi đầu tiên tuyệt vời. +1.) –

+0

Gotcha. Cảm ơn các mẹo @KenWhite –

Trả lời

20

CỐ ĐỊNH - mysql đã tạo tài khoản 'gốc' của tôi không có đặc quyền (tôi là mysql newb).

tôi giải quyết bằng cách bắt đầu mysql với

--skip-grant-tables 

Sau đó tung ra với:

mysql5 

Và chạy:

mysql> UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root'; 
mysql> FLUSH PRIVILEGES; 
mysql> GRANT ALL ON *.* TO 'root'@'localhost'; 

Hy vọng điều này sẽ giúp người!

+2

Và bạn nhận được +1 từ tôi để có câu trả lời hay cho phù hợp với câu hỏi. :) –

+0

Lưu ngày của tôi! Cảm ơn! –