1.去MySQL官网下载安装包
https://www.mysql.com/ |
企业版本是收费的,我们下载免费的社区版本。
下载服务器版本:
选择平台为红帽的Linux,别选错。
我们用的是RHEL6,所以要选择相对应的版本。根据你的系统选择32位还是64位版本。注意一定要选择适配的版本,不要在64位平台上装32位版本。另外,要看清楚你的操作系统是哪个版本(RHEL5?6?7?),这个很关键。因为这三个版本的操作系统改动幅度很大,为防止麻烦,还是要选择适配版本,别串用。
这时我们需要注册一个Oracle账号(别嫌麻烦,下载Oracle也用得着),然后登陆下载即可。
也可以在下面直接下载。
2.FTP传送安装包到服务器
3.解压缩安装包
cd /var/ftp/pub tar -xvf mysql-5.7.13-1.el6.x86_64.rpm-bundle.tar #换成你的版本号 |
解压得到9个包:
安装之前我们需要检查mysql是否已安装,grep的-i选项表示匹配时忽略大小写:
rpm -qa|grep -i mysql |
如果看到:mysql-libs-5.1.61-4.el6.x86_64这个包,说明已经安装了库文件,应该先卸载,不然会出现覆盖错误。注意卸载时使用了--nodeps选项,忽略了依赖关系:
rpm -e mysql-libs-5.1.61-4.el6.x86_64 --nodeps #换成你的版本号 |
使用命令依次安装(必须按照这个顺序):
rpm -ivh mysql-community-common-5.7.13-1.el6.x86_64.rpm --force --nodeps rpm -ivh mysql-community-libs-5.7.13-1.el6.x86_64.rpm rpm -ivh mysql-community-client-5.7.13-1.el6.x86_64.rpm --force rpm -ivh mysql-community-libs-compat-5.7.13-1.el6.x86_64.rpm --force rpm -ivh mysql-community-embedded-5.7.13-1.el6.x86_64.rpm rpm -ivh mysql-community-devel-5.7.13-1.el6.x86_64.rpm --force rpm -ivh mysql-community-embedded-devel-5.7.13-1.el6.x86_64.rpm rpm -ivh mysql-community-server-5.7.13-1.el6.x86_64.rpm --force rpm -ivh mysql-community-test-5.7.13-1.el6.x86_64.rpm --force |
4.初始化mysql并设置root密码
此时尝试用root登陆,密码错误!据官方文档的解释,这时因为从MySQL5.7.4起,以RPM包的方式安装后的MySQL的部署默认是安全的,并且有这些特点:
在大多数情况下,你只需要安装MySQL-server和MySQL-client安装包就可以安装上一个标准功能的MySQL。对于一个标准安装来说,其他的安装包不是必需的。
MySQL的安装程序会创建一个单独的root账户:'root'@'localhost',并自动为这个账户生成一个初始的随机密码,并将此密码标志为已过期。(注意,root的密码是安装程序随机生成的的而不是空)
那么密码从哪里找呢?官方文档说:对于MySQL5.7.6和更高的版本来说,初始的随机root密码是被写入错误日志的。对于MySQL5.7.4和5.7.5版本来说,密码是被写入以HOME环境变量命名的目录中的.mysql_secret文件中的。根据操作系统,可以使用诸如sudo这样的命令让HOME环境变量的值指向root系统用户的home目录。.mysql_secret文件是以只允许创建它的系统用户访问的600模式而创建的。(版本差异的产生,是因为自5.7.6版本起数据目录和root账户由mysqld --initialize来初始化,5.7.6以前的版本由mysql_install_db来初始化)。
不创建MySQL匿名账户。
不创建测试数据库。
作为上述操作所产生的结果,在安装完成后你需要去启动服务,以root身份,用初始的随机密码来进行连接,并且在连接后选择一个新的密码。在完成这些操作之前,root用户无法做其他的任何事情。修改密码,你可以用ALTER USER语句(例如,通过mysql客户端)。重设密码后,如果有创建.mysql_secret文件就把它删除;否则,在你执行mysql_secure_installation这条命令的时候,可能会再次看到那个文件和过期的root密码成为确认安全部署的一部分。
初始化的操作我们要在/usr/bin目录中进行,所以我们先进入/usr/bin目录:
cd /usr/bin |
然后,我是以root身份登录Linux系统的,并且我想为root账户生成一个随机的初始密码,所以我要执行命令:
mysqld --initialize --user=mysql --explicit_defaults_for_timestamp |
mysqld服务会检查数据目录是否存在,如果数据目录不存在,mysqld则会创建它。如果数据目录存在,且不是空目录(即包含有文件或子目录),mysqld会显示一条错误信息并中止:
[ERROR] --initialize specified but the data directory exists. Aborting. |
遇到这种情况,就将数据目录删除或重命名后,重新再试一次。
简单的说,就是在初始化之前,先检查一下数据目录是否存在,执行命令:
ls -l /var/lib|grep mysql |
若有,则执行命令将其删除:
rm -rf /var/lib/mysql |
再次尝试之前的命令就可以了:
这样就完成了对MySQL的初始化,并为root账户生成了一个随机的初始密码。
下面我们来看下root账户的随机初始密码,执行命令:
sudo grep 'temporary password' /var/log/mysqld.log |
下图红线框中的字符就是密码,把它记下来,登录MySQL的时候要用:
MySQL服务器安装之后虽然配置了相关文件,但并没有自动启动mysqld服务,需自行启动:
service mysqld start |
可通过检查端口是否开启来查看MySQL是否正常启动:
netstat -anp|grep 3306 |
我们来看下mysqld是否已经启动了,执行命令:
service mysqld status |
如果看到的和下图一样,就说明已经启动了:
准备工作全部就绪,来吧,登录吧!执行命令:
mysql -u root -p |
要注意输入密码是不显示的,不是你的键盘有问题,而是Linux的一种安全机制,只管输入就行。
费尽周折总算是登了进来,可是每次输入这样一个密码真的是一件很恶心的事。所以要尽快趁这个机会把root密码改掉,改成我们方便记忆的密码。
alter user 'root'@'localhost' identified by '123456'; |
有一点需要注意,MySQL对用户密码安全性有所加强,所以设置的密码必须包含有数字,大写字母,小写字母,特殊符号,如果你设置的密码过于简单,会提示:
ERROR 1819 (HY000): Your password does NOT satisfy the CURRENT policy requirements。 |
尝试用新密码登录没有问题,至此,安装mysql的工作就告一段落了!
6.配置MySQL的远程登录
默认MySQL只允许本地连接,如果尝试用Navicat远程连接会收到如下错误提示:
如果想打开远程连接,需要在putty中登录MySQL,然后执行以下SQL语句:
mysql -u root -p use mysql; update user set host = '%' where user = 'root'; select host, user from user; FLUSH PRIVILEGES; |
此时就可以用navicat登陆了!