linux下的mysql的编译安装和yum安装mysql
1、下载mysql的源码安装包和依赖包cmake源码包
2、将两个安装包上到到/usr/local目录下,如下图
3、编译安装cmake
首先解压cmake安装包,# tar -zxvf cmake-2.8.10.2.tar.gz
然后进入cmake的目录,并执行安装
# cd cmake-2.8.10.2
# ./configure
在configure阶段可能会报错1:缺少C编译器,要安装gcc,# yum -y install gcc,在configure阶段可能会报错2:缺少C++编译器,要安装gcc-c++,# yum -y install gcc-c++,最难搞的报错是如下:
下载,然后# rpm -ivh ncurses-devel-5.7-4.20090207.el6.x86_64.rpm,再次运行没有报错了,接着make和make install
4、安装mysql
a、解压mysql源码包,# tar -zxvf mysql-5.5.29.tar.gz
b、创建数据库的安装目录,# mkdir /usr/local/mysql
c、创建存储数据库目录,# mkdir /usr/local/mysql/data
d、检查mysql用户组和用户是否存在,如果没有,则创建,# cat /etc/group|grep mysql,回车什么都没有,证明没有组,先创建组,# groupadd mysql,# cat /etc/passwd|grep mysql,回车什么都没有,证明没有用户,再创建用户,# useradd -r -g mysql mysql
e、编译mysql
# cd mysql-5.5.29
# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DINSTALL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql # mysql的安装目录
-DINSTALL_DATADIR=/usr/local/mysql/data # 设置数据库的存放目录
-DDEFAULT_CHARSET=utf8 # 设置编码utf8
-DDEFAULT_COLLATION=utf8_general_ci # 校验字符
-DEXTRA_CHARSETS=all # 安装所有扩展字符集
-DENABLED_LOCAL_INFILE=1 # 允许从本地导入数据
会出现一个警告,暂时不用管,如下图
# make
# make install
5、配置mysql
a、设置目录权限
# cd /usr/local/mysql
# chown -R root:mysql . # 把当前目录中所有文件的所有者设为root,所有组为mysql
# chown -R mysql:mysql data
# cp support-files/my-medium.cnf /etc/my.cnf # 将mysql的启动服务添加到系统服务中(注意,如果etc下已有my.cnf,需要先将其删除)
警告:如果没有以上的权限设置,那么在接下来的启动mysql时,会报错(mysql启动后,会自动关闭)
# 进入mysql/bin目录,启动mysql,如下图
b、创建系统数据库表
# cd /usr/local/mysql
# scripts/mysql_install_db --user=mysql
c、查看mysql是否启动
# ps -ef|grep mysql,如下图,可见启动成功
d、将mysql的启动服务添加到系统服务中
# cp support-files/mysql.server /etc/init.d/mysql
# service mysql stop # 关闭mysql
# service mysql start # 启动mysql
e、将mysql加入到环境变量中,使得在shell环境下敲入mysql即可进入mysql
# vi /etc/profile # 编辑profile文件,并添加下面两行
export MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH
保存退出,# source /etc/profile # 刷新配置文件,使环境变量生效,并敲入mysql验证
可能出现问题
分析原因:查看tmp目录,发现在该目录下没有指定的mysql.sock文件
解决办法:手动添加一个mysql.sock 文件,并重新启动mysql
f、修改MySQL的root用户密码,以及打开远程连接
# mysql -u root mysql # 进入mysql,如下图
mysql>show databases; # 展示所有数据库
mysql>use mysql; # 进入mysql数据库
mysql>show tables; # 展示所有表
mysql>desc user; # 查看表结构
mysql> update user set Password = password('123456') where User='root'; # 修改root用户的密码为123456
mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456"; # 为root添加远程连接权限 ,以及远程登录密码
mysql>select Host,User,Password from user where User='root';
mysql>flush privileges;
mysql>exit
退出后,重启使用root用户登录mysql,# mysql -u root -p
g、远程连接,使用Navicat for MySQL进行连接
点击连接测试,提示连接成功
点击确定,再点击确定,可以看到连接成功的数据库和对应的表
如果点击连接测试无法连接时,请关闭mysql数据库所在机器的防火墙:
方法一:# /etc/rc.d/init.d/iptables stop
方法二:# service iptables stop 或 # chkconfig iptables off
关闭防火墙后,重新启动mysql,数据库连接成功
yum安装MySQL:
1、查看CentOS自带mysql是否已安装,输入:yum list installed | grep mysql
2、若有自带安装的mysql,如何卸载CentOS系统自带mysql数据库?输入:yum -y remove mysql-libs.x86_64,若有多个依赖文件则依次卸载,当结果显示为Complete!即卸载完毕
3、查看yum库上的mysql版本信息(CentOS系统需要正常连接网络)。输入:yum list | grep mysql或yum -y list mysql*
4、使用yum安装mysql数据库,输入:yum -y install mysql-server mysql mysql-devel命令将:mysql-server、mysql、mysql-devel都安装好,当结果显示为Complete!即安装完毕,注:安装mysql只是安装了数据库,只有安装mysql-server才相当于安装了客户
5、查看刚安装mysql数据库版本信息,输入:rpm -qi mysql-server