1. Linux环境下MySQL的编译安装步骤
1.1 检查环境是否已经安装了MySQL
1. 执行命令: rpm –qa | grep –i mysql
从上图的执行结果可以看出系统中已经安装了一个版本的mysql.
1.2 卸载已经安装的MySQL
如果在第一的检查中,发现系统中已经安装了MySQL,那么首先要进行卸载。如果检查中没有安装,那可跳过此步骤。
卸载步骤:
1. 执行删除命令:rpm -e --nodeps 包名(包名就是上一步的检查中查出来的:mysql-libs-5.1.71-1.el6.x86_64)。
本例子中执行的命令就是:rpm –e --nodeps mysql-libs-5.1.71-1.el6.x86_64。
3. 删除老版本mysql的开头文件和库
执行命令:rm –rf /usr/mysql rm –rf /usr/include/mysql rm –rf /etc/my.cnf
1.3 下载MySQL的安装包
1. 首先查看自己的操作系统的版本, 执行命令:lsb_release -a
可以看出我的系统是CentOS_6.5
2. 去官方网站下载安装包。
地址:http://dev.mysql.com/downloads/mysql#downloads
注意:因为CentOS是Red Hat系列的, 所以我们选择RedHat linux
3.下载2个安装包:
(MySQL-5.6.26-1.el6.i686.rpm-bundle.tar) 这个是几个程序的合集包。
(MySQL-shared-compat-5.6.26-1.el6.i686.rpm)这个是软件包的共享库, 包括MySQL 3.23和MySQL 4.0的共享库。如果你安装了应用程序动态连接MySQL 3.23,但是你想要升级到ySQL 4.0而不想打破库的从属关系,则安装该软件包而不要安装MySQL-shared。(此说明摘自别的网友分享,不知道是否正确)
关于下载的方式,可以在本地下载后上传到linux服务器, 也可以直接在linux服务器上用wget命令下载。
我采用的是wget下载:
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-5.6.26-1.el6.i686.rpm-bundle.tar
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-shared-compat-5.6.26-1.el6.i686.rpm
1.4 编译并安装MySQL
1.解压mysql的安装包
命令:tar -xvf MySQL-5.6.26-1.el6.i686.rpm-bundle.tar –C ./mysql
2.测试安装rpm –ivh --test MySQL-server-5.6.26-1.e16.i686.rpm
测试没有问题,可以进行安装。有时候测试的结果会少一些依赖包,需要根据提示进行依赖包的安装(参考 可能遇到的问题)
3.执行安装命令:rpm –ivh MySQL-server-5.6.26-1.e16.i686.rpm
安装成功
1.5 安装MySQL-shared-compat
执行命令rpm -ivh MySQL-shared-compat-5.6.26-1.el6.i686.rpm
1.6 安装MySQL-client
执行命令:rpm -ivh MySQL-client-5.6.26-1.el6.i686.rpm
2. Linux环境下MySQL的yum安装步骤
此安装方法一样需要检查系统中是否安装了MySQL, 如果安装了也需要删除先
2.1 查询可用的mysql版本
从查询结果可以看出mysql-server的最高版本是5.1的,和现在官网的5.6的还是差好几个版本的。如果想安装最新版本,此方法不行。
2.2 执行安装命令
安装命令: yum –y install mysql-server mysql mysql-deve
执行查询能看到安装的确实是5.1的版本。
3. 从MySQL官方yum仓库安装MySQL5.6
此方法来自互联网, 并未做验证
3.1 下载yumupdate包
下载地址:http://dev.mysql.com/downloads/repo/yum/
下载RedHat Enterprise Linux 6 / Oracle Linux 6版
我下载的是: http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
导入成功后就可以通过yum命令进行安装了。
3.2 导入yum库
执行命令: yum localinstall mysql-community-release-el6-*.noarch.rpm
3.3 安装
1. 安装mysql 服务器端:yum install mysql-server
yum install mysql-devel
2. 安装mysql客户端:
yum install mysql
4. 启动MySQL
4.1 执行启动命令:service msyqld start
从上图可以看出,第一次启动的时候会初始化数据库。再次启动的时候不会显示这么多内容。
4.2 重启命令:service mysqld restart
4.3 停止命令:service mysqld stop
5. MySQL相关设置
5.1 开机自动启动设置
1.检查是否设置了开机启动
命令:chkconfig --list | grep mysqld
发现没有设置开机自动启动
2.通过chkconfig mysqld on来设置开机自动启动
3.通过chikconfig mysqld off来关闭开机自动启动
5.2 设置root用户的新密码
因为第一次安装mysql后, root的密码为空。在第一次启动mysql的时候提示用命令
/usr/bin/mysqladmin -u root password 'new-password' 来设置新密码
验证是否设置密码成功:
5.3 解决内外网都能访问问题
执行sql:注意执行此sql中2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19为密码,应该修改成你自己的root的密码
insert into user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv, Create_view_priv, Show_view_priv, Create_routine_priv, Alter_routine_priv, Create_user_priv, Event_priv, Trigger_priv, ssl_type, ssl_cipher, x509_issuer, x509_subject, max_questions, max_updates, max_connections, max_user_connections) values('%','root','*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19,'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','','0','0','0','0');
如果添加了此项还不能外网访问, 可能是防火墙拦截, 关闭防火墙后再试。
关闭防火墙命令:/etc/init.d/iptables stop
5.4初始化mysql数据库
/usr/bin/mysql_install_db --user=mysql --datadir=/var/lib/mysql
6. 可能遇到的问题
6.1 缺少libaio.so.1和libstdc++.so.6
有时候在安装测试的时候会初相上图的情况,而且系统已经安装了libaio也不行。这个时候需要做2个操作
yum –y install libaio.so.1
yum –y install libstdc++.so.6
6.2 Mysql-libs包冲突
6.3 缺少libz.so.1
此情况是我在安装MySQL-shared-compat的时候出现的
6.4 缺少libtinfo.so.5
此问题的出现是我在安装MySQL-client的时候出现的
有时候安装不上so.1的包,可以试着先安装gcc
gcc
-c++
yum
install
gcc
gcc
-c++ kernel-devel
6.5 表名区分大小写
LINUX下的MYSQL默认是要区分表名大小写的
1.用ROOT登录,修改/etc/my.cnf
2.在[mysqld]下加入一行:lower_case_table_names=1
3.重新启动数据库即可。