今天我升级MYSQL到5.1的时候遇到的。写出来共享以下。
1、
[root@localhost mysql]# scripts/mysql_install_db
Neither host 'localhost.localdomain' nor 'localhost' could be looked up with
/resolveip
Please configure the 'hostname' command to return a correct
hostname.
If you want to solve this at a later stage, restart this script
with the --force option
这个主要是修改/etc/hosts文件
echo "127.0.0.1 localhost.localdomain localhost" >> /etc/hosts
然后再初始化数据,如果还是同样的错误,那就直接加--force开关。
我今天碰到的就是这个情况。
[root@localhost mysql]# scripts/mysql_install_db --force
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/mysql//bin/mysqladmin -u root password 'new-password'
/usr/local/mysql//bin/mysqladmin -u root -h localhost.localdomain password 'new-password'
See the manual for more instructions.
You can start the MySQL daemon with:
cd . ; /usr/local/mysql//bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd mysql-test ; perl mysql-test-run.pl
Please report any problems with the ./bin/mysqlbug script!
The latest information about MySQL is available on the web at
Support MySQL by buying support/licenses at
这样就成功初始化数据了。
2、编码文件链接丢失。
[root@localhost mysql]# scripts/mysql_install_db --force
Installing MySQL system tables...
071129 13:38:08 [ERROR] Can't find messagefile '/usr/local/mysql/share/english/errmsg.sys'
071129 13:38:08 [ERROR] Aborting
071129 13:38:08 [Note]
Installation of system tables failed!
Examine the logs in /usr/local/mysql/data/ for more information.
You can try to start the mysqld daemon with:
/usr/local/mysql//bin/mysqld --skip-grant &
and use the command line tool
/usr/local/mysql//bin/mysql to connect to the mysql
database and look at the grant tables:
shell> /usr/local/mysql//bin/mysql -u root mysql
mysql> show tables
Try 'mysqld --help' if you have problems with paths. Using --log
gives you a log in /usr/local/mysql/data/ that may be helpful.
The latest information about MySQL is available on the web at
Please consult the MySQL manual section: 'Problems running mysql_install_db',
and the manual section that describes problems on your OS.
Another information source is the MySQL email archive.
Please check all of the above before mailing us!
And if you do mail us, you MUST use the ./bin/mysqlbug script!
解决:
今天发现MYSQL官方5.1.22 对这个BUG进行了修正。
mysql_install_db could fail to find its message file. (Bug#30678)
[root@localhost mysql]# ln -s /usr/local/mysql/share/mysql/english/ /usr/local/mysql/share/english
[root@localhost mysql]# scripts/mysql_install_db --force
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/mysql//bin/mysqladmin -u root password 'new-password'
/usr/local/mysql//bin/mysqladmin -u root -h localhost.localdomain password 'new-password'
See the manual for more instructions.
You can start the MySQL daemon with:
cd . ; /usr/local/mysql//bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd mysql-test ; perl mysql-test-run.pl
Please report any problems with the ./bin/mysqlbug script!
The latest information about MySQL is available on the web at
Support MySQL by buying support/licenses at
正常启动
[root@localhost mysql]# /usr/local/mysql/bin/mysqld_safe &
[1] 2680
[root@localhost mysql]# 071129 13:45:16 mysqld_safe Logging to '/usr/local/mysql/data//localhost.localdomain.err'.
/usr/local/mysql/bin/mysqld_safe: line 366: [: -eq: unary operator expected
071129 13:45:16 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data/
ps aux | grep mysql
root 2680 0.0 0.1 4684 1144 pts/0 S 13:45 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe
nobody 2748 1.6 1.7 108948 16796 pts/0 Sl 13:45 0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=nobody --log-error=/usr/local/mysql/data//localhost.localdomain.err --pid-file=/usr/local/mysql/data//localhost.localdomain.pid --socket=/tmp/mysql.sock --port=3306
root 2762 0.0 0.0 4120 668 pts/0 S+ 13:45 0:00 grep mysql
2、用 mysqldumpshow时遇到的错误:
[root@localhost bin]# mysqldumpslow
Can't determine basedir from 'my_print_defaults mysqld' output: --max-allowed-packet=100M
export PATH=$PATH:/usr/local/mysql/bin
就可以解决。