2011-03-14 165 views
3

我通過BREW mysql安裝mysql的,看起來像安裝就ok了。即使我變得棘手,Mysql也不會讓我設置root密碼。似乎表格完全丟失。 以下詳細輸出。BREW上安裝雪豹不太工作

jb:~ jb$ brew install mysql 
==> Downloading http://mysql.mirrors.pair.com/Downloads/MySQL-5.1/mysql-5.1.55.tar.gz 
######################################################################## 100.0% 
==> Downloading patches 
==> Patching 
patching file scripts/mysqld_safe.sh 
Hunk #1 succeeded at 384 (offset 1 line). 
patching file scripts/mysql_config.sh 
==> ./configure --without-docs --without-debug --disable-dependency-tracking --prefix=/usr/local/Cellar/mysql/5.1.55 --l 
==> make install 
==> Caveats 
Set up databases with: 
    unset TMPDIR 
    mysql_install_db 

If this is your first install, automatically load on login with: 
    mkdir -p ~/Library/LaunchAgents 
    cp /usr/local/Cellar/mysql/5.1.55/com.mysql.mysqld.plist ~/Library/LaunchAgents/ 
    launchctl load -w ~/Library/LaunchAgents/com.mysql.mysqld.plist 

If this is an upgrade and you already have the com.mysql.mysqld.plist loaded: 
    launchctl unload -w ~/Library/LaunchAgents/com.mysql.mysqld.plist 
    cp /usr/local/Cellar/mysql/5.1.55/com.mysql.mysqld.plist ~/Library/LaunchAgents/ 
    launchctl load -w ~/Library/LaunchAgents/com.mysql.mysqld.plist 

Note on upgrading: 
    We overwrite any existing com.mysql.mysqld.plist in ~/Library/LaunchAgents 
    if we are upgrading because previous versions of this brew created the 
    plist with a version specific program argument. 

Or start manually with: 
    mysql.server start 
==> Summary 
/usr/local/Cellar/mysql/5.1.55: 220 files, 42M, built in 17.6 minutes 
jb:~ jb$ echo $TMPDIR 
/var/folders/uL/uLRuoWTeFi86v2TkZkknLU+++TI/-Tmp-/ 
jb:~ jb$ unset TMPDIR 
jb:~ jb$ echo $TMPDIR 

jb:~ jb$ mysql_install_db 
Installing MySQL system tables... 
OK 
Filling help tables... 
OK 

To start mysqld at boot time you have to copy 
support-files/mysql.server to the right place for your system 

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! 
To do so, start the server, then issue the following commands: 

/usr/local/Cellar/mysql/5.1.55/bin/mysqladmin -u root password 'new-password' 
/usr/local/Cellar/mysql/5.1.55/bin/mysqladmin -u root -h jb.local password 'new-password' 

Alternatively you can run: 
/usr/local/Cellar/mysql/5.1.55/bin/mysql_secure_installation 

which will also give you the option of removing the test 
databases and anonymous user created by default. This is 
strongly recommended for production servers. 

See the manual for more instructions. 

You can start the MySQL daemon with: 
cd /usr/local/Cellar/mysql/5.1.55 ; /usr/local/Cellar/mysql/5.1.55/bin/mysqld_safe & 

You can test the MySQL daemon with mysql-test-run.pl 
cd /usr/local/Cellar/mysql/5.1.55/mysql-test ; perl mysql-test-run.pl 

Please report any problems with the /usr/local/Cellar/mysql/5.1.55/bin/mysqlbug script! 

jb:~ jb$ cp /usr/local/Cellar/mysql/5.1.55/com.mysql.mysqld.plist ~/Library/LaunchAgents/ 
jb:~ jb$ launchctl load -w ~/Library/LaunchAgents/com.mysql.mysqld.plist 
jb:~ jb$ /usr/local/Cellar/mysql/5.1.55/bin/mysql_secure_installation 




NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL 
     SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! 


In order to log into MySQL to secure it, we'll need the current 
password for the root user. If you've just installed MySQL, and 
you haven't set the root password yet, the password will be blank, 
so you should just press enter here. 

Enter current password for root (enter for none): 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 

MADNESS隨後...

我確信我擁有USR /本地:

jb:~ jb$ sudo chown -R `whoami` /usr/local 
jb:~ jb$ which mysql 
/usr/local/bin/mysql 

我甚至嘗試啓動MySQL用 '跳過授權表',並設置密碼:

jb:~ jb$ launchctl unload -w ~/Library/LaunchAgents/com.mysql.mysqld.plist 
jb:~ jb$ killall mysqld 
No matching processes belonging to you were found 
jb:~ jb$ mysqld_safe --skip-grant-tables 
110314 15:09:01 mysqld_safe Logging to '/usr/local/var/mysql/jb.local.err'. 
110314 15:09:01 mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql 

然後在另一個終端窗口中:

jb:~ jb$ mysql -u root 
Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 1 
Server version: 5.1.55 Source distribution 

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. 
This software comes with ABSOLUTELY NO WARRANTY. This is free software, 
and you are welcome to modify and redistribute it under the GPL v2 license 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 

mysql> UPDATE mysql.user SET Password=PASSWORD('pretend_strong_password_here') WHERE User='root'; FLUSH PRIVILEGES; 
Query OK, 0 rows affected (0.02 sec) 
Rows matched: 0 Changed: 0 Warnings: 0 

Query OK, 0 rows affected (0.03 sec) 

mysql> 

見鬼,不應該影響一個行?這就像桌子沒有被製造出來一樣? 我應該已經跑mysql_install_dbsudo

PS:我可能是傲慢無視沖泡配方失敗的下載的mysql-54年1月5日,我編輯它延胡索55年5月1日帶來這一切我自己。但是,除此之外,有什麼可以看到我在這裏做錯了嗎?

編輯: http://forums.mysql.com/read.php?10,277700,280261#msg-280261http://palmeradev.blogspot.com/2010/12/fix-bug-mysql-root-user-not-created.html

表示一對夫婦的MySQL查詢來創建mysql.user表中的root用戶。 這些查詢不適用於我,我得到一個錯誤。

mysql> INSERT INTO user VALUES ('localhost','root',password('newpassword'),'Y','Y ','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y', 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','' ,'','','',0,0,0,0); 
ERROR 1136 (21S01): Column count doesn't match value count at row 1 
+0

你的代碼看起來真嚇人!嘗試並縮短它或什麼......沒有多少人可能想要回答所有那些瘋狂隨之而來!? ;) – gideon 2011-03-14 08:42:29

+0

謝謝,吉迪。如果我能夠自己縮小問題的範圍,我會削減更多終端輸出。我希望在這裏的某個地方,我的面前答案是正確的。 – 2011-03-14 10:01:15

+0

你的'用戶'表有根嗎?即,如果您運行'select * from user;'你看到什麼了嗎? – zlog 2011-04-01 05:38:10

回答

1

看起來像用戶表沒有被正確創建。你應該以root用戶運行mysql_install_db因爲可能你沒有到/ usr /本地的/ var/mysql的寫訪問/