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客户端软件,有着易用的、类似于资源管理器的用户界面。
不错的参考链接: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的密码,最终成功了。