So I'm new to MYSQL and RoR. I am trying to learn ruby on rails, but
i'm having a problem with MYSQL.
I am using Mac OS X 10.6 Snow Leopard (10.6.7).
To install MYSQL i done:
brew install mysql
Which installed mysql, but when I do "mysql_install_db" this comes up:
"
FATAL ERROR: Could not find ./bin/my_print_defaults
If you compiled from source, you need to run 'make install' to
copy the software into the correct location ready for operation.
If you are using a binary release, you must either be at the top
level of the extracted archive, or pass the --basedir option
pointing to that location.
"
and when I do "mysql -u root" this comes up:
"
ERROR 2002 (HY000): Can't connect to local MySQL server through socket
'/tmp/mysql.sock' (2)
"
Can anybody please help me? As I would like to continue learning ror
ASAP, but this is holding me back...
Set up databases to run AS YOUR USER ACCOUNT with:
unset TMPDIR
mysql_install_db --verbose --user=whoami --basedir=“$(brew --prefix mysql)” --datadir=/usr/local/var/mysql --tmpdir=/tmp
To set up base tables in another folder, or use a differnet user to run
mysqld, view the help for mysqld_install_db:
mysql_install_db --help
and view the MySQL documentation:
sudo mysql_install_db …options…
Start mysqld manually with:
mysql.server start
Note: if this fails, you probably forgot to run the first two steps up above
A “/etc/my.cnf” from another install may interfere with a Homebrew-built
server starting up correctly.
To connect:
mysql -uroot
To launch on startup:
if this is your first install:
mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/mysql/5.5.10/com.mysql.mysqld.plist ~/Library/LaunchAgents/
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.5.10/com.mysql.mysqld.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/com.mysql.mysqld.plist
You may also need to edit the plist to use the correct “UserName”.
When i try mysql_install_db --verbose --user=`whoami` --basedir="$
(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
This come up:
"
Installing MySQL system tables...
110618 17:17:01 [ERROR] Incorrect definition of table mysql.proc:
expected column 'comment' at position 15 to have type text, found type
char(64).
ERROR: 1548 Cannot load from mysql.proc. The table is probably
corrupted
110618 17:17:01 [ERROR] Aborting
and use the command line tool /usr/local/Cellar/mysql/5.5.10/bin/mysql
to connect to the mysql database and look at the grant tables:
> /usr/local/Cellar/mysql/5.5.10/bin/mysql -u root mysql
> show tables
Try 'mysqld --help' if you have problems with paths. Using --log
gives you a log in /usr/local/var/mysql that may be helpful.
Please consult the MySQL manual section
'Problems running mysql_install_db', and the manual section that
describes problems on your OS. Another information source are the
MySQL email archives available at http://lists.mysql.com/.
Please check all of the above before mailing us! And remember, if
you do mail us, you MUST use the /usr/local/Cellar/mysql/5.5.10/
scripts/mysqlbug script!
Look, I'm still a beginner with Ruby, Rails and MYSQL. All this is
gibberish to me at the moment. Now you either want to help me or you
don't.
I tried examining the logs, etc.., etc... but I don't understand whats
wrong. I once got this to work, then I uninstalled because of some
other problems, and now I can't get it work anymore.
I had the same issue this morning on a fresh machine. Rather than
bothering with MySQL once again (this sort of thing is a common
problem) I switched to Postgres.
brew installl postgress
gem install pg
Then point rails to the PG server:
development:
adapter: postgresql
Excuse me?? I wouldn't have bothered to answer in the first place if
I wasn't trying to help.
I tried examining the logs, etc.., etc... but I don't understand whats
wrong.
And yet it doesn't occur to you to share those log entries with anyone
who *might* understand them? Sorry, my crystal ball is in the shop at
the moment, so I'm afraid I won't be able to comment further
**#For MySql you want something like**
development:
adapter: mysql
encoding: utf8
database: temp_development
username: root
password:( give your root mysql password )
socket: /tmp/mysql.sock
# Warning: The database defined as 'test' will be erased and
# re-generated from your development database when you run 'rake'.
# Do not set this db to the same as development or production.
test:
adapter: mysql
encoding: utf8
database: temp_test
username: root
password: socket: /tmp/mysql.sock
production:
adapter: mysql
encoding: utf8
database: temp_production
username: root
password:
socket: /tmp/mysql.sock