服务器搭建

20200208:今天在家里闲着,在本机上装了一个虚拟机,安装了centos操作系统,想装上mysql server做为我的测试用服务器。遇到以下问题:

1: 安装centos的镜像文件时,是最小安装,但没勾选右边的一堆选项。以后是要需要勾选上的。否则装上后好多命令都没有。

2:https://www.mysql.com官网上,downloads——mysql community downloads——mysql community server——选择操作系统时没有centos,不知道该选哪个了,后来才知道选linux Generic这个是linux通用的意思 。

3:想在linux下面安装wget,然后去直接下载mysql server的安装包。 执行yum -y install wget时报找不到,发现是网络不通。查看虚拟机的网络连接:NAT 使用已经共享的主机IP地址,

 

把主机的网络中这的两个跟虚拟机有关的也启用了,可还是不行。

最后某人给了我思路说,让我的虚拟机的网络连接方式改为:桥接

参考LINUX下配置IP地址的链接:https://www.cnblogs.com/wangyuehan/p/9827581.html

最后终于可以了。  curl https://www.baidu.com   访问百度网页OK 了。

 认识一下桥接:

1、桥接网络(Bridged Networking)

桥接网络是指本地物理网卡和虚拟网卡通过VMnet0虚拟交换机进行桥接,物理网卡和虚拟网卡在拓扑图上处于同等地位(虚拟网卡既不是Adepter VMnet1也不是Adepter VMnet8)。

20200209  昨天把虚拟机的网络调通过了,通过yum -y install wget下载成功了wget,然后通过学习wget -t 2 https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.19-winx64-debug-test.zip 

 可以下载mysql server 的linux安装包了,但是下载得特别慢,半天才下载了2M ,最后还是在主机windwos下用的迅雷下载的,总共大小是241000KB ,也就是241MB。

然后用两个工具,第一个连接服务器的SecureCRT(Xshell),第二个是给服务器上传下载东西的SecureFX。

百度百科:SecureCRT 是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说就是Windwos下登陆UNIX或Linux服务器主机的软件。

                  SecureFX是一款由VanDyke Software, Inc.(中文译为:范戴克软件公司)研发生产的支持普通FTP标准和安全数据传输标准(SFTP 或者 在SSH2 上的FTP)的FTP客户端软件,有着易用的、类似于资源管理器的用户界面。

                  Xshell [1]  是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。
                  Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。除此之外,其还有丰富的外观配色方案以及样式选择。
 
现在我将我主机中下载的压缩包上传至服务器上了,接下来,开始安装。同时系统学习下linux命令,以前虽然也用,但是不系统,从CSDN上下载了个linux命令手册.chm,我习惯了用这种手册的方式学习,易查询,全面且详细。
 
mkdir :创建文件夹 —— mkdir wangm
cp:移动文件或目录像 —— cp /root/mysqlXXXXX  /root/wangm
tar:压缩或解压缩小  —— tar mysqlXXXXX.tar.gz  /usr/local/mysql           tar mysqlXXXX.tar.xz /usr/local/mysql
mv:移动文件或目录,可以改名   —— mv /root/wangm/mysqlXXXXXX  /usr/local/mysql     #将mysqlXXXX移动至目标目录,且将长的安装包的名字改名为mysql
rpm:查询是否安装过mysql
find:查找文件命令
whereis:定位可执行文件的位置
cat:在屏幕上显示文件,连接两个或多个文件。
vi:用于文本查看和编辑的命令。与CAT的区别是不仅可以查看还可以编辑。
touch:用于创建不存在的文件,或者把已经存在的文件更新系统时间为当前。
ls:列出指定目录里的内容。ll :事先定义好的alias,是ls -l --color=auto            
 
 

 不错的参考链接:linux下安装mysql超详细的   https://blog.csdn.net/weixin_43209051/article/details/102984704

生成的临时密码如图:

启动mysql

/usr/local/mysql/support-files/mysql.server start

总是报以下的错误,

Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).

各终排查后还是出现在配置文件/etc/my.cnf

通过对my.cnf进行逐条排查,最后报的错终于出现错误解日志了,如下:

查看这个错误文件:  vi /usr/local/mysql/data/localhost.localdomain.err

 这里提示表名大小写不敏感的设置有问题,于是去/ect/my.cnf的配置文件中将这条注释掉,于是终于成功了!!!

修改mysql中root用户的密码:

先用之前生成的临时密码登陆: mysql -u root -p

输入密码:XSFF6EC3uB-t

mysql>set password root@localhost = password('123456'); 

这句居然报错了:

原来我装的是mysql是的最新版本,最新版本不支持set password了,所以改用altet user来改root的密码:。如上成功了。  mysql> alter user '用户名'@'登录主机' identified by '密码(自定义)';

20200211 接下来客户端连接后建表吧。。。。

问题来了,客户端连接报错了 

参考链接:https://my.oschina.net/u/3295928/blog/1811804

主要原因是mysql服务器要求的认证插件版本与客户端不一致造成的。

打开mysql命令行输入如下命令查看,系统用户对应的认证插件:

可以看到root用户使用的plugin是caching_sha2_password,mysql官方网站有如下说明:

意思是说caching_sha2_password是8.0默认的认证插件,必须使用支持此插件的客户端版本。

plugin的作用之一就是处理后的密码格式和长度是不一样的,类似于使用MD5加密和使用base64加密一样对于同一个密码处理后的格式是不一样的。

解决方法:

我不希望更新本地的客户端版本,想直接使用原来的环境来链接。

解决方法是将root的plugin改成mysql_native_password。相当于降了一级。

mysql官方网站提供了从mysql_old_password升级到mysql_native_password,我们可以仿照这个。官方原文如下:

这里改成:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

这行代码有两层含义,第一:修改root的密码为'root',摒弃原来的旧密码。第二:使用mysql_native_password对新密码进行编码。

 

 可我这里执行这条语句就是不成功,

补充:

如果在修改插件的时候出现错误,可现将插件改为 mysql_old_password,然后再升级成mysql_native_password,方法:

 

 

修改完成后再用客户端登陆成功

 建库:create database 'wmtest';

 建表:create table students1 (id int not null auto_increment,

                                               `name` varchar(10) not null,

                                               sex int not null,

                                               age int not null,

                                               `subject` varchar(5) default null,

                                               grade int default null,

                                               primary key (id)) engine =innodb auto_increment=10 default charset=utf8;

插入表数据:INSERT INTO students1 SELECT * FROM students;    #表结构完全相同的两个表,将一个表中的数据灌入另一张表。

20200213:今天重做系统,又重新装了一次mysql,遇到了如下问题:

/etc/my.cnf下面的socke注释掉后,就可以重新启动mysql了。然后通过重置mysql的密码,最终成功了。

 

原文地址:https://www.cnblogs.com/yoyoma0355/p/12285095.html