公司新买了个2TB的硬盘,供部署内部服务器;对于我来讲部署centos服务器已经是轻车熟路了,把mysql部署放到前面讲,是因为部署mysql的时候不小心,报了好多错误~~
mysql版本是mysql-5.0.89-linux-i686-glibc23.tar.gz,我在《mysql for linux 压缩包下载》里面已经提供了;由于是压缩包,解压即可使用,所以不用编译了;
解压后,移动到/usr/local/mysql/,然后进入mysql路径,运行mysql:
[root@jst-cn mysql]# ./support-files/mysql.server start
于是报了第一个错:
Starting MySQL.Manager of pid-file quit without updating fi[失败],
这个错误,我曾经在博客里面两次提到,分别是《【解决】Starting MySQL.Manager of pid-file quit without updating fi[失败]》和《权限问题造成:Starting MySQL.Manager of pid-file quit without updating fi[失败]》,但是这次和这两篇文章提到的不同,因为我忘记创建测试数据了,于是创建测试数据:
/usr/local/mysql/scripts/mysql_install_db –user=mysql
于是,第二个错误来了:
FATAL ERROR: Could not find /home/mysql/bin/my_print_defaults
If you are using a binary release, you must run this script from
within the directory the archive extracted into. If you compiled
MySQL yourself you must run ‘make install’ first.
这个错误原因是——没有指定mysql路径以及数据库存放路径,解决方法是在配置文件里面添加路径:
vim /etc/my.cnf
在[mysld] 后面加上路径:
basedir = /usr/local/mysql
datadir =/opt/data;
如果添加完路径还报错,需要加上参数执行:
/usr/local/mysql/scripts/mysql_install_db –user=root –basedir=/usr/local/mysql –datadir=/opt/mysql/data/
第三个错误,是在我进入mysql的时候出现的:
mysql启动成功后,用这命令进入mysql报错——mysql -u root
-bash: mysql: command not found
这个错误原因是,没有配置环境变量,没有将mysql中的bin文件映射过去,解决方法有两个,一个是配置环境变量(太懒,没弄),另外一个就是进入bin路径再输入mysql命令登陆:
cd /usr/local/mysql/bin
mysql -u root
2010-10-14 补充:采用ubuntu10.10同样安装后,启动mysql报错:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)
解决方法—-先看看报错到位置是否存在,如果不存在直接新建文件夹,然后做个软链接:
mkdir /var/run/mysqld
ln -s /tmp/mysql.sock /var/run/mysqld/mysqld.sock
OK,解决了!
第四个错误是配置远程登陆mysql时报错(用navicat.exe):
ERROR 1130: Host ‘192.168.1.3’ is not allowed to connect to this MySQL server
这个由于是mysql禁用了远程登陆,只允许localhost登陆,Google后,找到两种方法,我用了是第二种:
1. 改表法。登入mysql,更改 ”mysql” 数据库里的 ”user” 表里的 ”host” 项,从”localhost”改称”%”
mysql -u root -pvmwaremysql>use mysql;mysql>update user set host = '%' where user = 'root';mysql>select host, user from user;2. 授权法。例如,你想root使用password从任何主机连接到mysql服务器的话。GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;3.另外,如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.99' IDENTIFIED BY '123456' WITH GRANT OPTION;使用Navicat for MySQL连接远程的MySQL服务器,却提示:Can't get hostname for your address已经使用grant命令授权过了,还需要再执行一步:编辑/etc/my.cnf,在:[mysqld]内添加一行:skip-name-resolveMySQL忽略数据库表名大小写修改/etc/my.cnf,在[mysqld]内添加一行:lower_case_table_names=1
至此,mysql终于开始正常工作了!下面来整体回顾下正确的操作步骤:
1、添加mysql用户以及用户组:
groupadd mysql
useradd mysql -g mysql
2、移动mysql的配置文件,将/usr/local/mysql/support-files/my-large.cnf移动到/etc/my.cnf
cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf
3、配置my.cnf,添加上mysql以及data路径
vim /etc/my.cnf
在[mysld] 后面加上路径:
basedir = /usr/local/mysql
datadir =/opt/data;
4、更改mysql和data属性为mysql用户/用户组,并添加权限
chown -R mysql.mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql
chown -R mysql.mysql /opt/data
chmod -R 755 /opt/data
5、生成测试数据:
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/opt/mysql/data/
6、加入系统启动项
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
chkconfig mysql on
chkconfig --list mysql #查看自启动情况
mysql 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭 #自启动成功
7、如需登陆mysql或者mysqladmin等,必须进入/usr/local/mysql/bin目录再输入命令
cd /usr/local/mysql/bin
mysql -u root -p
8、允许远程连接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
其实安装mysql的过程中只要细心一点,一定可以避免犯我上面说的那些错误的!
原创文章,转载请注明: 转载自三叶草
特别声明:商业网站转载需经作者同意,否则视为侵权!
评论:24
参与评论