装虚拟机是一件很简单的事情,但也可能会变得非常棘手,尤其是当你用的是Thinkpad。

问题一:

2017年我自学Java时,发现自己的机器(二手Thinkpad T430s)安装CentOS一直报错:




mysql 安装到虚拟机 虚拟机里面安装mysql_mysql


问题二:

后来好不容易装上了,又一直打印以下错误信息:


mysql 安装到虚拟机 虚拟机里面安装mysql_linux启动mysql_02


问题三:

饶了一大圈总算解决,结果发现安装MySQL又是一件苦差事。跟着崔老师学习JavaWeb时,安装的MySQL Server是5.6版本。但是我最近玩乐优商城时,发现5.6版本执行下面这个建表语句时会报错:


DROP


具体错误在:


`


原因:

mysql会默认为表中的第一个timestamp字段(且设置了NOT NULL)隐式设置DEFAULAT CURRENT_TIMESTAMP。上例那样的设置实际上等同于设置了两个CURRENT_TIMESTAMP,因此而报错。

使用MySQL5.7及以上就没问题了。

虽然这个问题不完全是软件的坑,但是总归让人不爽。所以我就想着升级到5.7。结果Linux下MySQL5.7的安装非常麻烦,而且网上很多博客都不具备可操作性...虽然有很多朋友劝我用docker,或者干脆yum自动安装。都是很好的建议,甚至我的这种办法是非常笨拙的。但这对熟悉linux命令行操作还算有益处(对刚接触Linux的新手)。所以这篇文章的目的有两个:

  • 学会常用Linux操作
  • 学会安装JDK/Tomcat/MySQL5.7

请先下载所有本次安装必须的软件(见评论区)


VMware10安装

按文档安装VMware


mysql 安装到虚拟机 虚拟机里面安装mysql_mysql_03



CentOS6.5安装

1-->请Thinkpad用户特别小心!务必先下载下方小工具,检查电脑是否开启虚拟化。


mysql 安装到虚拟机 虚拟机里面安装mysql_linux虚拟机_04


如果有红叉,请参考:

如果不知道自己的机子如何进入BIOS,请自行百度(一般开机狂按F2或F12)。


mysql 安装到虚拟机 虚拟机里面安装mysql_linux启动mysql_05


2-->按照文档,在VMware上安装CentOS


mysql 安装到虚拟机 虚拟机里面安装mysql_mysql 安装到虚拟机_06


有两点需要注意:

  • 本次安装是CentOS 64位,请选择CentOS 64
  • Thinkpad用户,如果出现开头提到的“问题二”(指纹识别损坏),请安装CentOS后,移除USB


mysql 安装到虚拟机 虚拟机里面安装mysql_linux启动mysql_07



Secure Shell安装

因为无法直接在VMware上进行复制粘贴,对我们程序员非常不利。所以,我们采用Secure Shell远程操作Linux。安装很简单,一路next即可。


mysql 安装到虚拟机 虚拟机里面安装mysql_mysql_08

软件位置

mysql 安装到虚拟机 虚拟机里面安装mysql_虚拟机安装linux_09

Secure Shell上远程登录Linux,等同于本地操作

mysql 安装到虚拟机 虚拟机里面安装mysql_mysql_10

Secure Shell还集成了图形化界面,可以直接拖拽文件上传

用Secure Shell连接Linux时需要知道ip,请在VMware的Linux上登录后输入ifconfig获取。

对Secure Shell使用有疑问的话,请参考黑马32期day26的linux笔记。


JDK安装

0-->如果完全没学过Linux命令行,请根据黑马32期day26的linux笔记,敲一遍就好了

1-->通过Secure Sehll,上传jdk的压缩包到/usr/local下


mysql 安装到虚拟机 虚拟机里面安装mysql_虚拟机安装linux_11


2-->安装步骤(切换到Secure Shell命令行窗口):

1)查看当前Linux系统是否已经安装java


输入 rpm -qa | grep java


mysql 安装到虚拟机 虚拟机里面安装mysql_linux启动mysql_12


2)卸载两个openJDK


输入 rpm -e --nodeps 文件名


mysql 安装到虚拟机 虚拟机里面安装mysql_虚拟机安装linux_13


3) 解压jdk


cd /usr/local 

tar –zxvf jdk-8u144-linux-x64.tar.gz


4)配置jdk环境变量

编辑/etc/profile配置文件


vim /etc/profile


将下面配置拷贝进去(黏贴到最后一行)


#set java environment
JAVA_HOME=/usr/local/jdk1.8.0_144
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH


退出保存

先按Esc,然后按出":",最后输入wq

5)重新加载/etc/profile配置文件


source /etc/profile


6)删除jdk的压缩包


rm -rf jdk-8u144-linux-x64.tar.gz


结束


Tomcat安装

1-->拖拽apache-tomcat-8.5.38.tar.gz到usr/local

2-->安装步骤

1)解压Tomcat


cd /usr/local 

tar –zxvf apache-tomcat-8.5.38.tar.gz


2)开放Linux对外访问的端口8080


/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

/etc/rc.d/init.d/iptables save


3)启动(或者稍后关闭)Tomcat


进入tomcat的bin下启动:./startup.sh

进入tomcat的bin下关闭:./shutdown.sh


启动成功后,打开你windows本地的浏览器,尝试访问Tomcat:


比如 192.168.123.456:8080


结束


MySQL5.7安装

如果你是centos7.x推荐我基友的这篇,否则按我下面这种来吧:

尼克陈:阿里云CentOS安装Mysql数据库zhuanlan.zhihu.com

mysql 安装到虚拟机 虚拟机里面安装mysql_mysql_14


1-->还是拖拽安装包到/usr/local

2-->安装步骤

1)解压


cd /usr/local

tar -zxvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz


mysql 安装到虚拟机 虚拟机里面安装mysql_虚拟机安装linux_15


2)删除压缩包


rm -rf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz


mysql 安装到虚拟机 虚拟机里面安装mysql_linux虚拟机_16


3)将刚才解压的文件夹改名为mysql


mv mysql-5.7.25-linux-glibc2.12-x86_64/ mysql


mysql 安装到虚拟机 虚拟机里面安装mysql_linux虚拟机_17


4)卸载系统自带mysql


查看:rpm -qa|grep mysql


mysql 安装到虚拟机 虚拟机里面安装mysql_mysql_18


卸载:rpm -e --nodeps 自带的mysql名称


mysql 安装到虚拟机 虚拟机里面安装mysql_虚拟机安装linux_19


如果查看没结果,说明没有自带mysql,直接下一步

5)创建用户组和用户


创建用户组:groupadd mysql

创建用户:useradd -r -g mysql mysql


6)给mysql用户指定专有用户和用户组

首先创建data目录


cd /usr/local/mysql

mkdir data


指定用户和用户组:


cd /usr/local

chown -R mysql mysql/

chgrp -R mysql mysql/


7)初始化mysql


cd /usr/local/mysql/bin

./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US


mysql 安装到虚拟机 虚拟机里面安装mysql_linux启动mysql_20


8)配置my.cnf


vi /etc/my.cnf


然后拷贝下面代码进去


[mysqld]  
basedir=/usr/local/mysql/  
datadir=/usr/local/mysql/data/


退出保存

先按Esc,然后按出":",最后输入wq

9)启动


进入:cd /usr/local/mysql/bin
启动:./mysqld_safe --user=mysql &


10)设为开机启动


cd /usr/local/mysql/support-files/

cp mysql.server /etc/init.d/mysql

vi /etc/init.d/mysql


将mysql目录填上:


basedir=/usr/local/mysql/

datadir=/usr/local/mysql/data/


mysql 安装到虚拟机 虚拟机里面安装mysql_linux虚拟机_21

键盘↓,很快就找到了

授权:chmod +x /etc/init.d/mysql

设为开机启动:chkconfig --add mysql


11)登录mysql修改密码授权远程登录(Linux默认不允许远程访问MySQL)


进入:cd /usr/local/mysql/bin

登录:./mysql -u root -p    

输入刚才保存的临时密码:xxxxxxxx(手动输入,不要复制,容易出错)

修改密码:set password=password("root");

登录授权:grant all privileges on *.* to'root' @'%' identified by 'root';

授权生效:flush privileges;


下次开启虚拟机,本机用navicat连接数据库时,用户名和密码均为:root

12)开放Linux的对外访问的端口3306


/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

/etc/rc.d/init.d/iptables save


结束!


mysql 安装到虚拟机 虚拟机里面安装mysql_虚拟机安装linux_22


快用Navicat远程访问MySQL试试吧!

MySQL5.7中文乱码解决:

https://blog.51cto.com/14497235/2429967


参考资料

1.黑马32期day26 linux笔记


mysql 安装到虚拟机 虚拟机里面安装mysql_mysql 安装到虚拟机_23


2.(本文MySQL安装搬运自此)

如果觉得本文不够详细,不妨按上面两篇文档来。

2019-3-20 18:51:00