您的位置:首页 > 数据库 > MySQL

redhat9下安装mysql5 时解决出现的各种问题

2008-07-26 15:21 337 查看
通过ftp把mysql-5.0.51a-linux-i686.tar.gz上传到usr/local目录
进入usr/local/目录
解压mysql二进制文件
gzip -d mysql-5.0.51a-linux-i686.tar.gz
tar -xvf mysql-5.0.51a-linux-i686.tar
mv mysql-5.0.51a-linux-i686.tar mysql
cd mysql
[root@localhost mysql]# groupadd mysql
[root@localhost mysql]# useradd -g mysql mysql
[root@localhost mysql]#./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql
如果出现
[root@localhost mysql]# Starting mysqld daemon with databases from /usr/local/mysql/data
安装成功
如果出现
[root@localhost mysql]# Starting mysqld daemon with databases from /usr/local/mysql/data
STOPPING server from pid file /usr/local/mysql/data/localhost.localdomain.pid
070410 09:55:20 mysqld ended

Mysql目录权限问题
在/usr/local/lib下建立mysql目录
全部设置一遍
chown -R root /usr/local/mysql
chgrp -R mysql /usr/local/mysql
chown -R root /usr/local/mysql/bin
chgrp -R mysql /usr/local/mysql/bin
chgrp -R mysql /var/lib/mysql
chmod 777 /var/lib/mysql
chown -R root /var/lib/mysql
chgrp -R mysql /var/lib/mysql
chmod 777 /var/lib/mysql
chown -R root /var/lib/mysql/*
chgrp -R mysql /var/lib/mysql/*
chmod 777 /var/lib/mysql/*
继续配置 mysql,使其在系统启动时自动启动:
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --list mysqld
chmod 700 /etc/init.d/mysqld //设置使mysql每次启动都能自动运行
[root@localhost mysql]#ps -e | grep mysql //检查mysql进程是否启动
4996 pts/0 00:00:00 mysqld_safe
5023 pts/0 00:00:00 mysqld
5024 pts/0 00:00:00 mysqld
5025 pts/0 00:00:00 mysqld
5026 pts/0 00:00:00 mysqld
5027 pts/0 00:00:00 mysqld
5028 pts/0 00:00:00 mysqld
5030 pts/0 00:00:00 mysqld
5031 pts/0 00:00:00 mysqld
5032 pts/0 00:00:00 mysqld
5033 pts/0 00:00:00 mysqld
[root@localhost mysql]#netstat -atln
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:32768 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:32769 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:783 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 52 192.168.11.128:22 192.168.11.1:4655 ESTABLISHED
tcp 0 0 192.168.11.128:21 192.168.11.1:1922 ESTABLISHED
说明已经启动了
service mysqld stop
关掉后重起mysql
service mysqld start

如果提示:
Starting MySQL/etc/init.d/mysqld: line 159: kill: (21755) - No such process

去Google了一下,原来是用户权限问题!

编辑mysqld:
vi /etc/rc.d/init.d/mysqld

找到类似这样一行(我这里是304行):
$bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &

改为(加上参数--user=root):
$bindir/mysqld_safe --user=root --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &

然后再试:
service mysqld start
因为mysql5.0有一个登陆用户密码加密问题和5.0以下的版本不同
所以当
bin/mysqladmin -u root password root
[root@localhost mysql]mysql -u root -p
[root@localhost mysql]Enter password:root
出现
Client does not support authentication protocol requested
  by server; consider upgrading MySQL client

此时执行
[root@localhost mysql]chown -R mysql:mysql data
[root@localhost mysql]./bin/mysqld_safe --skip-grant-tables --skip-networking & //越过授权表网络登陆

[root@localhost mysql]mysql -u root -p
Enter password: //这样可以越过授权表无需输入密码以root用户登陆
mysql> //登陆后解决mysql5.0登陆用户密码加密问题
mysql> SET PASSWORD FOR

  -> 'some_user'@'some_host' = OLD_PASSWORD('newpwd');

  其二:

  mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd')

  -> WHERE Host = 'some_host' AND User = 'some_user';

  mysql> FLUSH PRIVILEGES;

  上面的部分请按自己实际情况修改....
改完后退出mysql,重新登陆
[root@localhost mysql]:service mysqld stop
Shutting down MySQLSTOPPING server from pid file /usr/local/mysql/data/localhost.localdomain.pid
080726 15:07:24 mysqld ended

[ OK ]
[6] Done ./bin/mysqld_safe --skip-grant-tables --skip-networking

[root@localhost mysql]:service mysqld start
Starting MySQL [ OK ]
[root@localhost mysql]mysql -u root -p
Enter password: //以service mysqld start方式启动时不输入密码进不去
ERROR 1045: Access denied for user 'root'@'localhost' (using password: NO)
[root@localhost mysql]mysql -u root -p
Enter password: root
//root是刚才mysql> SET PASSWORD FOR

  -> 'some_user'@'some_host' = OLD_PASSWORD('newpwd');

  其二:

  mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd')

  -> WHERE Host = 'some_host' AND User = 'some_user';

  mysql> FLUSH PRIVILEGES;
时设的密码
此时可以进入了

mysql>

注示:如果你现在重启机器,再次连接MySQL后,会提示Can’t connect to local MySQL server through
socket ‘/tmp/mysql.sock’ (2),你甚至可以在google里搜索到一大把询问这方面问题的信息。其实,
大部分都是因为不知道配置安装的MySQL必须手动启动——在终端里输入:/usr/local/mysql/
bin/mysqld_safe --user=mysql &。但是,每次机器重启都要手动启动MySQL多么麻烦,而且对于服务器
,不能自动启动将会影响网站的运营。所以我们必须让系统自动启动MySQL,使用echo “……” >>
/etc/rc.d/rc.local的格式。在这里就是echo “/usr/local/mysql/bin/mysqld_safe --user=mysql &”
>> /etc/rc.d/rc.local。

配置mysql环境变量
vi /etc/profile

MYSQL=/usr/local/mysql
TOMCAT_HOME=/Tomcat5.0
CLASSPATH=.$JAVA_HOME/lib:/pan/lib/mysql-connector-java-5.0.3-bin.jar:
PATH=$PATH:$JAVA_HOME/bin:$JRE/bin:$MYSQL/bin:$TOMCAT_HOME/bin:.

source /etc/profile 使配置生效,无需重起Lionux,重登陆
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐