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

本文详细介绍了MySQL5.0版本在Linux环境下从FTP上传、解压到配置自动启动的全过程,并解决了安装过程中遇到的权限及登录问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过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,重登陆

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值