在Linux下部署网站(java环境部署)第七章 安装MySQL(可选)

2017-01-13 10:47:17来源:oschina作者:三水一京人点击


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是否已经启动了,执行命令:



servicemysqldstatus



如果看到的和下图一样,就说明已经启动了:



准备工作全部就绪,来吧,登录吧!执行命令:



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登陆了!


最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台