注:资料来自网络
Centos 5.6编译安装mysql 5.5.11 2011年06月24日 星期五 05:33 MySQL 最新的版本5.5.11需要cmake编译安装,估计以后的版本也会采用这种方式,网上找了一些安装方法有些地方是错的,自己整理一份 所以特地记录一下安装步骤及过程,以供参考! 1 mysql 5.5.11编译安装 1.1 安装所需要系统库相关库文件 gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* 1.2 创建mysql安装目录 [root@localhost mysql-5.5.11]# mkdir -p /usr/local /mysql/ 1.3 创建数据存放目录 [root@localhost mysql-5.5.11]# mkdir -p /data/mysql/ 1.4 创建用户和用户组与赋予数据存放目录权限 [root@localhost mysql-5.5.11]# groupadd mysql [root@localhost mysql-5.5.11]# useradd -g mysql mysql [root@localhost mysql-5.5.11]# chown mysql.mysql -R /data/mysql/
1.5 安装cmake (mysql5.5以后是通过cmake来编译的)下载解压cmake-2.8.4.tar.gz [root@localhost mysql-5.5.11]# wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz [root@localhost mysql-5.5.11]# tar zxvf cmake-2.8.4.tar.gz [root@localhost mysql-5.5.11]# cd cmake-2.8.4 [root@localhost cmake-2.8.4]# ./bootstrap --------------------------------------------- CMake 2.8.4, Copyright 2000-2009 Kitware, Inc. --------------------------------------------- Error when bootstrapping CMake: Cannot find appropriate C compiler on this system. Please specify one using environment variable CC. See cmake_bootstrap.log for compilers attempted. --------------------------------------------- Log of errors: /usr/local/src/cmake-2.8.4/Bootstrap.cmk/cmake_bootstrap.log --------------------------------------------- 报错:缺少C的编译器。 安装gcc编译器 可以从Linux系统的安装盘中安装,也可以简单地用yum安装 [root@localhost ~]# yum install gcc 继续cmake的安装 [root@localhost cmake-2.8.4]# ./bootstrap --------------------------------------------- CMake 2.8.4, Copyright 2000-2009 Kitware, Inc. C compiler on this system is: cc --------------------------------------------- Error when bootstrapping CMake: Cannot find appropriate C++ compiler on this system. Please specify one using environment variable CXX. See cmake_bootstrap.log for compilers attempted. --------------------------------------------- Log of errors: /usr/local/src/cmake-2.8.4/Bootstrap.cmk/cmake_bootstrap.log --------------------------------------------- 再次报错:缺少C++编译器。 安装gcc-c++编译器 同样可以从Linux系统的安装盘中安装,或者简单地用yum安装 [root@localhost ~]# yum install gcc-c++ 重复上面的操作 [root@localhost cmake-2.8.4]# ./bootstrap 没有报错后,编译安装 [root@localhost cmake-2.8.4]# gmake [root@localhost cmake-2.8.4]# gmake install [root@localhost cmake-2.8.4]#./configure [root@localhost cmake-2.8.4]# make && make install
1.6 安装mysql 5.5.11 [root@localhost mysql-5.5.11]#wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.11.tar.gz [root@localhost down]# tar zxvf mysql-5.5.11.tar.gz [root@localhost down]# cd mysql-5.5.11
1.7 编译mysql-5.5.11 [root@localhost mysql-5.5.11]#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysql -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 上面的命令一次拷进命令行。 [root@host mysql-5.5.11]# make [root@host mysql-5.5.11]# make install 1.8 复制配置文件 [root@mysql-5.5.11]# cp support-files/my-medium.cnf /etc/my.cnf 1.9 初始化数据库 (执行前 需要chmod 755 scripts/mysql_install_db 赋给文件执行权限) [root@localhost mysql-5.5.11]#scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/ 注:#basedir mysql安装路径 datadir 数据库文件储存路径
设置mysqld的开机启动:
[root@mysql-5.5.11]# cp support-files/mysql.server /etc/init.d/mysql
[root@mysql-5.5.11]# chmod 755 /etc/init.d/mysql
chkconfig mysql on
1.11 配置环境
为了方便,将mysql 的bin目录加到PATH中,在/etc/profile中加入myslq/bin,顺便增加两个别名方便操作:
export PATH=/usr/local/mysql/bin:$PATH
开关客户端
alias mysql_start="mysqld_safe&"
alias mysql_stop="mysqladmin -uroot -p shutdown"
1.12 启动mysql服务
[root@localhost mysql-5.5.11]# /etc/init.d/mysql start //服务器端开关
/etc/init.d/mysql start
Starting MySQL.The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid). [FAILED] 启动mysql失败
解决Mysql不能启动的问题
安装好MYSQL后启动数据库出错 [root@localhost mysql]# service mysqld start Starting MySQL..Manager of pid-file quit without updating f[失败] 在网上查了半天,找到的有两种方法, 1、在 my.cnf 中增加了 在server下面
# The MySQL server
[mysqld]
port = 3306 socket = /tmp/mysql.sock 添加下面一行 datadir = /var/lib/mysql/ 和 [safe_mysqld] err-log = /var/log/mysqld.log pid-file = /var/lib/mysql/localhost.localdomain.pid 重新启动 mysql成功 /usr/local/mysql/var/db1.pid 这个文件名字貌似不能随便指定的 (我指定成了别的是不行的 ,这里的db1是你的hostname)
2、修改改selinux的 我改了 重新启动机器就行了,以下是SELINUX配置文件 [root@localhost selinux]# vi config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - SELinux is fully disabled. #SELINUX=enforcing SELINUX=disabled # SELINUXTYPE= type of policy in use. Possible values are: # targeted - Only targeted network daemons are protected. # strict - Full SELinux protection. SELINUXTYPE=targeted 然后重启计算机
[root@localhost ~]# /etc/init.d/mysql restart
Shutting down MySQL. [ OK ]
Starting MySQL.. [ OK ]
启动完成之后用ps -ef |grep mysql 命令查看是否启动
[root@localhost mysql-5.5.11]#/mysql –u root –p //client开关参照1.11一文
2 标准的mysql安装设置
2.1 设置root帐户的密码
[root@localhost mysql-5.5.11]#mysqladmin -u root password 'yourpassword'
2.2 删除本机匿名连接的空密码帐号
本机登录mysql
[root@localhost mysql-5.5.11]#mysql –u root -p
然后输入上面设置的密码,登录后在mysql的命令行中执行:
mysql>use mysql; //选择默认数据库mysql
mysql>update user set password=’root’ where user = '127.0.0.1';
mysql>delete from user where password="";//不允许root密码为空
mysql>flush privileges;
mysql>quit
容许root用户是远程登录
对于root账号,如果考虑安全应该新建其他账号用于远程登录,root账号可以不必开启远程登录。不过对于一般使用,没有太多安全需求,允许root用户远程登录可以方便管理,毕竟使用专用管理软件的图形界面在操作方面要方便的多。
3 实现MySQL远程连接的实际操作流程
3.1 mysql 数据库端设置
[root@localhost mysql-5.5.11]#/mysql –u root –p //进入数据库
mysql>use mysql
mysql>select user,password,host from user;
mysql>update user set host = '192.168.%' where user = '127.0.0.1';
mysql>grant all privileges on *.* to root@'%' identified by "root";//给以root@ip登录的远程连接赋予权限,能够连接数据库。远程无法连接的常见问题原因。
并把远程登录用户的密码设置为root
mysql> flush privileges;
mysql>quit
3.2 mysql Windows客户端
下载客户端
http://js.newhua.com/down/files/mysql-gui-tools-5.0-r17-win32.zip
mysql官方GUI
设置用户名root 密码为root //上面刚设置好的密码
[root@localhost html]# mysql -uroot -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: No)
无法修改密码
用 service mysqld stop
mysqld_safe --skip-grant-tables &
输入 mysql -uroot -p 回车进入
>use mysq;
> update user set password=PASSWORD("newpass")where user="root"; 更改密码为 newpass
> flush privileges; 更新权限
> quit 退出
service mysqld restart 重启数据库
mysql -uroot -p 新密码进入
真晕,我也就是让这个搞了半天没有进去mysql,在这里做下记录,一是给自己一个提醒,再者如果那位朋友遇到这问题了也好解决
[root@sunxia ~]# cat /var/log/mysqld.log 100705 22:24:04 mysqld started 100705 22:24:04 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295 100705 22:24:04 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295 /usr/libexec/mysqld: Can't create/write to file '/tmp/ibTXsoen' (Errcode: 13) 100705 22:24:04 InnoDB: Error: unable to create temporary file; errno: 13 100705 22:24:04 [ERROR] Can't start server : Bind on unix socket: Permission denied 100705 22:24:04 [ERROR] Do you already have another mysqld server running on socket: /tmp/mysql.sock ? 100705 22:24:04 [ERROR] Aborting 晕死,mysql起不来,在网上找了半天资料,后来才发现Can't start server : Bind on unix socket: Permission denied这句,
Timeout error occurred trying to start MySQL Daemon. 启动 MySQL: [失败] [root@sunxia ~]# chown -R mysql:mysql /tmp/ 更改权限后起来