虚拟机安装mysql

这篇博客详细记录了在虚拟机上安装MySQL的过程,包括从官网下载MySQL社区版,选择适合的版本,上传安装文件,解压并创建用户和数据目录,初始化数据库,解决没有mysql.sock文件的问题,配置环境变量,启动服务以及设置和重置密码等常见问题。重点提到了密码设置的注意事项,避免因空格导致的登录错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近学习在虚拟机上面搭建java环境,等到安装mysql时,出现很多问题,主要是在/usr/local/mysql-5.7.25-linux-glibc2.12-x86_64/support-files  下面没有mysqld_multi.cnf文件,并且/etc下面也没有my.cnf,看网上说,/etc下面没有话可以吧/support-files下面的mysqld_multi.cnf文件放过去,修改名称就好,但是实际问题是这两个目录下都没有对应的文件,这个问题网上说法不一,对于刚开始学习linux的我来说坑也比较多,好在问题最终解决了,参考:https://blog.youkuaiyun.com/whandgdh/article/details/83177693

一、下载mysql

1、进入官网

mysql 官网:https://www.mysql.com
oracle已经收购mysql,进入oracle 官网也可以找到mysql安装包下载:https://www.oracle.com/index.html

在这里插入图片描述

mysql 选择社区版 :mysql和大多数开源产品的路线一样,分为社区版和商业版。,社区版的开发及测试环境没有那么严格.遵守GPL协议(通用性公开许可证)。

在这里插入图片描述

在这里插入图片描述

2、版本选择
2.1.选择开源的社区版稳定版GA版本

2.2.可以选择5.1或5.5,互联网公司主流5.5,其次5.1或者5.6

2.3.选择mysql数据库GA版发布后6个月以上的GA版本

2.4.要选择前后几个月没有大的bug修复版本,而不是大量修复bug的集中版本

2.5.考虑开发人员开发程序使用的版本是否兼容你选的版本.作为内部开发测试数据库环境,跑大概3-6个月时间.

我这里选择了5.7
在这里插入图片描述

在这里插入图片描述

上图显示第一个是二进制源码包,第二个是二进制测试包,第三个是源码包。
二进制版本的mysql是已经编译好的,无需 configure ,make make install 等步骤,只需配置一下即可使用,卸载也方便,直接删除即可。可以自行调整编译参数,最大化地定制安装结果。

在这里插入图片描述

无需登陆,直接开始下载。

二、安装

1、上传安装文件

mysql 下载后,通过xshell文件上传到centos7虚拟机上

在这里插入图片描述

3、将安装包移动到user/localx 目录下

在这里插入图片描述

在这里插入图片描述

4、解压mysql安装包

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

重命名文件

mv mysql-5.7.23-linux-glibc2.12-x86_64 mysql mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。

5、建立软连接
建议一般不要修改默认文件名,通过软连接来完成


ln -s mysql-5.7.23-linux-glibc2.12-x86_64 mysql

在这里插入图片描述

6、创建mysql用户

  useradd mysql

7、建立mysql数据目录,并赋予权限

7.1在根目录下

 mkdir -p data
 cd data
 mkdir -p mysql
7.2授权

chown mysql:mysql -R /data/mysql

看到data 的用户变成了mysql

在这里插入图片描述

7.3  配置文件信息

把 /usr/local/mysql-5.7.25-linux-glibc2.12-x86_64/support-files 下面的mysql.service复制到/etc/init.d 下,取名为mysql,

切记要修改datadir=/data/mysql,如下图:

但是我的 /usr/local/mysql-5.7.25-linux-glibc2.12-x86_64/support-files 下面的mysql.service信息并没有修改,解压的时候生成的就是这样,自己没有修改过,如图:

在/etc目录下创建my.cnf文件,并进行配置

在这里插入图片描述

注意:log-error 一定要配置,因为如果mysql启动错误,可以从日志文件中找到错误原因。其次bind—address配置0.0.0.0是为了监听所有的连接。 编辑完后 按esc 后按住 shift+: 输入 wq表示保存并退出 。

在[mysqld]的段中加上一句:skip-grant-tables
这样就可以跳过验证进行登陆了,如下图是我自己新建my.cnf后写的内容。

 

9、mysql初始化

9.1注意这里需要进到刚刚解压mysql的bin目录下

cd usr/local/mysql/bin
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

补充:执行上面语句后,在这块会出错,centos安装mysql5.7.19报 error while loading shared libraries: libaio.so.1

参考:https://blog.youkuaiyun.com/m0_38113129/article/details/79056047  因为没有安装libaio; 

查看错误日志文件是否有错

vim /data/mysql/mysql.err 
在这里插入图片描述

可以看到日志有错误提示,提示与刚刚初始化命令中datadir相关

在这里插入图片描述

看到刚刚初始化命令中datadir前面少了–,所以大家安装的时候一定要细心。

9.2 重新初始化

注意重新初始化之前一定要把datadir目录下的文件清空,不然初始化还会报错进入到datadir目录 删除数据

cd /data/mysql/

rm -rf *

删除后,重新初始化

 cd /usr/local/mysql/bin/
  ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
再次查看错误日志文件是否有错

vim /data/mysql/mysql.err 
在这里插入图片描述

日志文件没有报错,而且有了临时密码,表示初始化成功

10.登陆mysql

10.1、初始化成功后,查看初始化密码

cat /data/mysql/mysql.err |grep password

在这里插入图片描述

并把密码复制下来
到这里的时候,发现这个xshell背景太丑,字体太小。设置了下xshell背景,效果下面可见。

10.2、登录mysql

./mysqladmin -u root -p password 

并输入刚刚复制的密码,但是 却提示不能通过mysql.sock文件实现连接

在这里插入图片描述

三、安装相关问题

1、没有生成mysql.sock文件

查找mysql.sock 文件

find / -name mysql.sock
在这里插入图片描述

 百度了下说连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock。如果套接字文件被删除了,本地客户就不能连接。可以通过tcp/ip协议来连接。
即:
 mysql -uroot -h 127.0.0.1 -p 

但是 又又报错了

在这里插入图片描述

2 配置环境变量

表示不认识mysql命令,到目前位置还未配置环境变 即没有将mysql的bash加到path中。
编辑环境变量文件

vim /etc/profile
在后面添加系统bin路径以及mysql解压路径

 

在这里插入图片描述

配置好后再重启Xshell
然后再执行
mysql -uroot -h 127.0.0.1 -p

然后再输入刚刚临时文件的密码,但是 又又又报错了, 我内心快要崩溃了

在这里插入图片描述

 到这里,又去问度娘,可能mysql服务没有启动,对啊,刚刚重启了虚拟机,并没有启动mysql服务。

3、启动mysql服务

在这里插入图片描述

mysql启动成功后,再通过tcp/ip连接,就在以为快要打工告成的时候,居然又报了同样的错

在这里插入图片描述

5、重新设置密码

这里需要先重新设置密码,设置成自己方便记忆的密码,进行数据库操作

set password for 'root'@'localhost'=password('MyNewPass4!');

flush privileges; 并刷新权限

然后数据库就可以使用了

在这里插入图片描述

然后 use mysql    可以进入到mysql这个数据库中,里面有user表啥的可以进行操作,,比如 

以后再修改数据库密码时,参考:https://blog.youkuaiyun.com/qq_28938933/article/details/72872064    把user=root对应的HOST改成‘%’,在MySQL中’%’表示可以在任何主机上登录MySQL数据库, 这样本地就可以连接linux上创建的数据库了,语句为:

update user set HOST='%' where user='root';   即就把localhost改成%。

 到了这里就差不多了,下面我把我遇到的报错记录下:

1.env: /etc/init.d/mysqld: Permission denied-MySQL “env: /etc/init.d/mysql:权限不够” 的解决方法

参考下:http://www.dbmng.com/Article_2054.html

2.ERROR 1133 (42000): Can't find any matching row in the user table

参考:https://blog.youkuaiyun.com/github_38336924/article/details/82702017

https://blog.youkuaiyun.com/ljw_jiawei/article/details/90784350

3.开启、关闭、重启mysql服务的方法有三种,可以自行百度,我用的是

service mysql start

service mysql stop

service mysql restart,不能用service mysqld start...我想是因为我在上面/etc/init.d下取得名称是mysql,而不是mysqld

补充:2020/07/23

之前安装mysql太繁琐了,最近在安装的时候发现一篇博文,很简单,如下:参考:https://www.cnblogs.com/shuideqing/p/12038004.html

二、安装MySqlServer

1、下载 Mysql yum包

yum包文件在mysql官网里可以找到http://dev.mysql.com/downloads/repo/yum/

一般默认是显示最新版mysql的noarch.rpm文件

下载到本地再上传到服务器,或者使用wget 直接下载

这里我们下载个5.7版的文件

wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm

2、安转yum软件源

执行如下命令安装

rpm -Uvh mysql57-community-release-el7-10.noarch.rpm
安装yum软件源

image

3、安装mysql服务端

yum install -y mysql-community-server

安装mysql服务端,这一步比较漫长,和网速有关,我安装就比较快。

4、启动mysql

service mysqld start

5、检查mysql 的运行状态

service mysqld status

6、修改临时密码

Mysql5.7默认安装之后root是有密码的。

7 、获取MySQL的临时密码

为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,error log的位置,默认是 /var/log/mysqld.log。

只有启动过一次mysql才可以查看临时密码

grep 'temporary password' /var/log/mysqld.log
(如果之前安装过MySQL则这里可能会有多个密码,用最后一个,注意这个密码输入时是可以粘贴的) 查看临时

这里的密码是:v6BlUX=VgsfQ

8、 登陆并修改密码

使用默认的密码登陆

mysql -uroot -p(这是一个MySQL的以密码登录root用户的命令)

mysql -uroot -p v6BlUX=VgsfQ

在这块报错:ERROR 1049 (42000): Unknown database 'XXX',解决方法如下:

能够发现-p和密码是连在一起的,他们之间没有空格
然后就问题解决自然登录上去了!!!

后来我研究了一波,发现:

-u后面可以紧跟用户名,也可以加个空格,但密码后面一定不能加空格。
如果加了空格,mysql会认为后面那个是一个库名。
我们可以看看正确的语句:
mysql -uroot -pv6BlUX=VgsfQ

用该密码登录到服务端后,必须马上修改密码再执行一些数据库操作,不然会报如下错误:

mysql> select @@log_error;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
修改密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
修改密码

image

如何解决ERROR 1819 (HY000): Your password does not satisfy the current policy requirements呢? 按如下操作

必须修改两个全局参数:
首先,修改validate_password_policy参数的值

mysql> set global validate_password_policy=0;
再修改密码的长度

mysql> set global validate_password_length=1;
修改长度

image

再次执行修改密码就可以了

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
9、授权其他机器登陆,下面是两步:

mysql>update user set user.Host='%' where user.User='root';
mysql>flush privileges;

这样本机电脑就可以连接远程服务器的mysql数据库了。

至此安装结束!

二、有关mysql数据库方面的操作
必须首先登录到mysql中,有关操作都是在mysql的提示符下进行,而且每个命令以分号结束
登录到mysql中:mysql -u root -p密码

1、显示数据库列表。
show databases;
2、显示库中的数据表:
use mysql; //打开库
show tables;
3、显示数据表的结构:
describe 表名;
4、建库:
create database 库名;

GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
UTF8: CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
5、建表:
use 库名;
create table 表名(字段设定列表);
6、删库和删表:
drop database 库名;
drop table 表名;
7、将表中记录清空:
delete from 表名;

truncate table  表名;
8、显示表中的记录:
select * from 表名;

9、编码的修改
如果要改变整个mysql的编码格式: 
启动mysql的时候,mysqld_safe命令行加入 
--default-character-set=gbk 

1、查看mysql中所有的数据库:

show databases;

2、查看正在使用的是哪个数据库:

select database();

3、创建一个数据库:

create database 数据库名;

4、使用指定的编码创建数据库创建数据库:

create database test3 charset=gbk;
5、删除数据库语句:

drop database 数据库名;

如果要改变某个库的编码格式:在mysql提示符后输入命令 
alter database db_name default character set gbk;

10.重命名表

alter table t1 rename t2;

11.查看sql语句的效率

 explain < table_name >

例如:explain select * from t3 where id=3952602;

12.用文本方式将数据装入数据库表中(例如D:/mysql.txt)

mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE;

总结:安装完成之后需要设置环境变量,在使用yum安装的时候的好处就是已经自动帮我们设置好环境变量了。👍

其实java环境也是这样,使用yum安装不需要在配置环境。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Stone.小小的太阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值