Problem installing Mysql for use with ROR

Hi,

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...

Thank You

Mark M
Maze

You can always use the default sqlite db. I've given up on mysql due to the same issue.

If you google mysql install 10.6 youll find a few good solutions. Hivelogic.com worked for me awhile back.

Kind Regards,
Chad Eubanks
The Code Boutique

Is Postgres any easier in ROR v 3 or wiser to give up and default to
sqlite3?

Have you tried the installer from MySQL?

    <http://www.mysql.com/downloads/mirror.php?id=402874>

It includes a Prefs Panel for starting and stopping the server. I've also found these to be very helpful developing RoR/MySQL apps:

    <http://www.sequelpro.com/>
    <http://www.phpmyadmin.net/>

**Leigh

Hi,

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)

"

You can’t connect to it because you haven’t started it yet. homebrew gives you specific instructions to perform after installation:

$ brew info mysql
mysql 5.5.10
http://dev.mysql.com/doc/refman/5.5/en/
Depends on: cmake, readline, pidof
/usr/local/Cellar/mysql/5.5.10 (6232 files, 219M)

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:

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/

    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.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”.

http://github.com/mxcl/homebrew/commits/master/Library/Formula/mysql.rb

Note the specific commands:

unset TMPDIR

mysql_install_db --verbose --user=whoami --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

mysql.server start

mysql -uroot

Just copy & paste them from the instructions.

Adam Stegman

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

110618 17:17:01 [Note] /usr/local/Cellar/mysql/5.5.10/bin/mysqld:
Shutdown complete

Installation of system tables failed! Examine the logs in
/usr/local/var/mysql for more information.

You can try to start the mysqld daemon with:

    > /usr/local/Cellar/mysql/5.5.10/bin/mysqld --skip-grant &

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!

"

How can I fix this please?

Personally, I'd start by following the rather thorough instructions in the
error message :slight_smile:

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.

Using this installer, it took me less than 4 minutes to have a fully working version of MySQL 5.5.13 running on my Macbook Air with OS X 10.6.7.

**Leigh

I downloaded the installer, and installed it. Still same problem :frowning:

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

Now you either want to help me or you don't.

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 :slight_smile:

Good luck,

Hi Maze,

Do you solve this problem? I got the same problem too.

Regards,

David

Man its frustrating when you finally find someone who has the exact same
problem you have and no one was willing to help.

FYI I ended up just completely removing mysql and doing a fresh install,
make sure you get all of the lingering mysql folders and files.

Which OS Your Using ?

If your using Ubuntu

Install mysql first ( sudo apt-get install mysql-server)

and install install mysql libs :

sudo apt-get install mysql-server mysql-server-5.0 libmysqlclient15off \

    libmysqlclient15-dev mysql-client-5.0 mysql-common

sudo apt-get install libmysql++-dev

sudo gem install mysql

change database.yml

**#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

Cheers,

Sai