CentOS6.5安装Mysql5.5

来源:互联网 发布:淘宝订单导出excel 编辑:程序博客网 时间:2024/05/16 08:48
一、准备环境

1、安装系统相关库文件
# yum -y install gcc gcc-c++ autoconf automake zlib* libxml* ncurses-devel libmcrypt* libtool* cmake

2、    建立mysql安装目录及数据存放目录
# mkdir  /usr/local/mysql
# mkdir -p /data/mysql

3、    创建用户和用户组
# groupadd mysql
# useradd -g mysql mysql

4、    赋予数据存放目录权限
# chown mysql.mysql -R /data/mysql

二、安装MySQL 5.5.35
1、    获取解压mysql-5.5.35.tar.gz
在mysql.com官网或国内镜像下载源码
# wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.35.tar.gz
# tar zxvf mysql-5.5.35.tar.gz
# cd mysql-5.5.35

2、    编译mysql-5.5.35
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.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

PS:可复制上面cmake命令的建议复制到txt文件(为了去掉回车和空行)再黏贴到客户端运行


# make
# make install

3、    复制配置文件
# cp support-files/my-medium.cnf /etc/my.cnf
PS: mysql5.5版本分my-small.cnf、my-medium.cnf、my-large.cnf,可根据机器内存大小选择合适的拷贝到/etc/下;mysql5.6版本则只有my-default.cnf文件。

4、    初始化数据库
执行前需赋给scripts/mysql_install_db文件执行权限
# chmod 755 scripts/mysql_install_db
# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ \

--datadir=/data/mysql/

注:basedir:mysql安装路径   datadir:数据库文件储存路径

5、    设置mysqld的开机启动
# cp support-files/mysql.server /etc/init.d/mysql
# chmod 755 /etc/init.d/mysql
# chkconfig mysql on

6、    为MySQL配置环境变量
将mysql的bin目录加到PATH中,有利于以后管理和维护,在/etc/profile中加入myslq/bin,同时增加两个别名方便操作:
# export PATH=/usr/local/mysql/bin:$PATH
# alias mysql_start="mysqld_safe &"
# alias mysql_stop="mysqladmin –u root -p shutdown"

7、    启动mysql服务
# /etc/init.d/mysql start
启动完成之后用ps -ef |grep mysql 命令查看是否启动

8、    登陆mysql#mysql -uroot -p



三、提示 在自行编译mysql,并连接本地机时,常出现找不到mysqld.sock的错误.
[root@lfqb data]# mysql -uroot
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysqld.sock' (2)
错误原因: mysql客户端默认去找 /tmp/mysqld.sock 做连接,而mysqld.sock有可能不在此处.
比如在 /var/lib/mysql/mysql.sock
解决:
1: mysql -S /sock/path 指定真实的路径
mysql -S /var/lib/mysql/mysql.sock
2: 在/tmp下做一个链接,链接到真实sock文件.
#  ln /var/lib/mysql/mysql.sock /tmp/mysqld.sock

0 0