MySQL数据库详细安装(Windows、Liunx)
MySQL介绍
MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。
Windows 安装MySQL
下载MySQL
官网安装
下载MySQL,地址:https://dev.mysql.com/downloads/installer/
mysql官网上提供了两种安装方式,第一种是在线版联网安装,第二种是本地安装。二者的区别是前者是联网安装,当安装时必须能访问互联网,后者是离线安装使用的,一般建议下载离线安装使用的版本。
以上两种安装方法均为图形界面向导方式安装,优点是可以比较清晰地看到整个mysql安装过程,并且可以选择性的安装所需的功能。缺点是安装过程中会出现一些环境依赖问题,导致安装失败。
本地压缩包安装
压缩包下载地址:https://dev.mysql.com/downloads/mysql/5.5.html#downloads
解压下载好的压缩包文件:
MySQL本地配置
- 打开已下载的MySQL文件,内容如下:
-
配置电脑的系统环境变量,找到Path变量;
-
添加MySQL安装的bin文件目录的路径,如下图所示:
- 环境配置完成后,打开文件夹,创建一个新的文件后缀名为 .ini 的
my.ini
空白文件。
-
编辑创建好的my.ini文件,用于初始化MySQL数据库,tips:路径必须为
\
的形式。[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] # 设置3306端口 port = 3306 # 设置mysql的安装目录 basedir = D:\\tools\\mysql-8.0.30-winx64 # 设置mysql数据库的数据的存放目录 datadir = D:\\tools\\mysql-8.0.30-winx64\\data # 允许最大连接数 max_connections=20 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 创建模式 sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
注意MySQL的安装目录路径是否填写正确
-
快捷键
Windows + R
输入cmd,进入本地Windows 命令行窗口,然后通过命令行 进入MySQL下的bin文件夹。或者直接在该文件下路径上输入 cmd ,然后回车确认即可。
- 输入
mysqld --initialize
进行初始化MySQL。
输入上述命令,按回车,会发现文件夹下会多出一个新的文件夹data。
等待初始化完成会生成一个后缀名为.err的文件,里面存放的是初始化登录MySQL的密码;
打开.err文件:找到下图中所示的root账户和root密码;
-
注意:如果先前在电脑中装过MySQL,请在cmd命令窗口输入
sc delete mysql
删除之前的MySQL服务。第一次安装请忽略 , 如下图所示: -
打开cmd窗口,输入
mysqld --install
命令;我这边已经装过了,所以显示为已存在; 第一次安装成功会提示:
Service successfully installed
;注意:如果出现
Install/Remove of the Service Denied!
错误的话。解决办法一:
使用管理员身份运行cmd,如下图:
接上,通过命令方式开启MySQL服务;
- 开启服务:
net start mysql
- 关闭服务:
net stop mysql
提示:
- Redhat Linux 支持service command,
启动:# service mysqld start
停止:# service mysqld stop
重启:# service mysqld restart- Windows下不能直接重启(restart),只能先停止,再启动。
解决办法二:
两种打开服务的方式:
- 手动启动MySQL服务,本机电脑打开管理面板;
- Windows 键 + R 键 打开本地命令行窗口,输入
services.msc
快速打开电脑 “服务”,检查MySQL服务,如下图所示:
找到MySQL服务,如未开启,可手动开启服务;
设置MySQL服务启动类型为:“ 自动 ”,启动服务。
-
使用root账户和刚刚文件里查看的密码进行登录;
命令:
mysql -uroot -p7lb7hWyuj!se
出现以下界面说明MySQL登录成功;
注意:这里我的密码已经修改过了;
-
修改MySQL root账户密码:使用命令:
alter user 'root'@'localhost' identified with mysql_native_password by ' **这里填写新密码** ';
注意:这里是在MySQL中进行操作的;
连接第三方工具
为了更便捷地使用数据库,可以选择连接MySQL数据库客户端navicat工具:
测试连接:
Linux 安装MySQL
1、卸载MySQL
- 查看是否已经安装 MySQL
rpm -qa|grep -i mysql
这里我的服务已经装过了,如下图所示:
-
停止MySQL服务
1、使用 service 启动:service mysqld start
2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start
-
删除MySQL
rpm -e 文件名
可能会遇到的问题:
-
error: Failed dependencies
通过 YUM 查询和卸载:
查询:yum list installed mysql* 卸载:yum remove mysql*
-
-
删除mysql的目录文件和库
shell> find / -name mysql #查找所有mysql相关的文件
/usr/share/mysql
/etc/selinux/targeted/active/modules/100/mysql
/var/lib/mysql
/var/lib/mysql/mysql
shell> rm -rf /usr/share/mysql #删除命令
shell> rm -rf /etc/my.cnf #卸载后/etc/my.cnf不会删除,需要进行手工删除
- 再次查看是否存有mysql
rpm -qa|grep -i mysql
无结果,说明已经卸载彻底、接下来直接安装mysql即可
2、安装MySQL
- 本次安装MySQL完整版本为:5.7.10,如需安装其他版本,可以去官网:https://repo.mysql.com/ 选择其他的RPM替换下面命令中的链接地址即可。
wget -i -c http://dev.mysql.com//mysql57-community-release-el7-10.noarch.rpm
如果安装有提示:Cannot write to ‘mysql57-community-release-el7-10.noarch.rpm’ (No such file or directory)
,那就是权限不够
可以输入 su root 来解决,然后重新下载。
-
安装MySQL包
yum -y install mysql57-community-release-el7-10.noarch.rpm
-
安装 MySQL
yum -y install mysql-community-server
如果执行命令过程中提示:
Unable to find a match: mysql-community-server
则可以通过命令解决
yum module disable mysql
-
启动MySQL服务
systemctl start mysqld.service
如果没有报错,进入下一步,
如果执行报错,多半是没有权限,执行下面语句赋予权限,然后重试
chown mysql:mysql -R /var/lib/mysql
-
查看MySQL运行状态
service mysqld status
看见这个绿色就表示启动成功了
-
查看初始密码(红色部分为初始密码)
grep 'password' /var/log/mysqld.log
如果能正常查看到,则OK;如果查看不到,则表示没有密码。
-
进入数据库
mysql -u root -p
输入命令后,点击回车,会让你输入密码,然后输入刚刚的初始密码(输密码的时候不可见),当然支持粘贴,你可以复制初始密码后,然后粘贴。如果没有密码,直接回车即可。
注: 如果显示数据库无法访问
修改MySql配置文件my.cnf,新增
skip-grant-tables
find / -name my.cnf
修改文件之前记得先关闭mysql服务
service mysqld stop
通过 vi 指令进入文件
vi /etc/my.cnf
新增
skip-grant-tables
,添加skip-grant-tables,这样mysql可以免密登录。重启服务
service mysqld start
再次连接MySql,重置密码
mysql -u root -p
任意密码就可以进入了
通过 show databases;
show databases;
切换到MySQL数据库
重置密码(为123456)
update user set authentication_string=password('root') where user='123456';
修改配置文件my.cnf,删除 skip-grant-tables,重启,再登录
删除skip-grant-tables
重启服务
service mysqld start
根据指令进入MySQL数据库
mysql -uroot -p123456
再次使用新密码登录即可至此!Linux 下 Mysql 安装到使用讲解完成!
3、Navicat 无法连接
-
服务器的防火墙mysql端口3306是否开放
查看防火墙是否已开放3306端口 firewall-cmd --query-port=3306/tcp 设置3306端口为永久开放 firewall-cmd --add-port=3306/tcp --permanent 查看firewalld状态,发现当前是dead状态,即防火墙未开启 systemctl status firewalld 关闭防火墙 systemctl stop firewalld 重启防火墙(设置了新的端口记得先关闭,再重启) systemctl status firewalld
-
如果是阿里云服务器,记得查看云安全组规则是否开放了3306端口,如果没有,记得加上
-
如果链接提示如下,则是没有允许远程登录
1130-host ... is not allowed to connect to this MySql server
解决办法:
登录服务器mysql数据库
--1. 进入mysql数据库:
use mysql;
--2. 查看mysql数据库中所有的表:
show tables;
--3. 查看user表中的数据:
select Host, User,authentication_string from user;
--4. 修改user表中的Host:
update user set Host='%' where User='root';
--5. 最后刷新一下:
flush privileges;
重新在Navicat中测试一下 ,连接成功。
随笔:“真的想做成某件事,如果可以的话,就从现在开始,不是明天,不是下个月,就此刻,然后坚持。即使今天跟明天之间,也隔着很多意外,所以不要等。”