01_MySql下载及安装配置 mysql 下载安装教程
yuyutoo 2024-12-20 19:35 5 浏览 0 评论
MySql下载及安装配置
li_zliang
一、Windows环境安装MySQL
1.1 下载MySQL(Community版)免安装软件包
1.2 解压缩软件包
1.3 创建my.ini文件
1.3 初始化MySQL
1.4 安装mysqld
1.5 启动MySQL服务
1.6 登录MySQL
1.7 修改密码
1.8 卸载mysql
二、CentOS7环境安装MySQL
2.1 下载MySQL
2.2 检查MySQL是否已经存在
2.3 检查mariadb并卸载
2.4 创建解压目录并上传解压
2.5 安装
2.6 查看安装
2.7 启动mysqld
2.8 查看原始密码
2.9 修改密码
2.10 修改data目录
2.11 卸载MySql
三、配置访问
3.1 开启防火墙端口(CentOS7)
3.2 客户端连接访问
3.3 设置密码的验证方式
3.4 创建数据库及用户
四、日常操作
五、问题
5.1 Incorrect string value: '\xF0\x9F\x90\xB6\xF0\x9F...' for column 'user_name' at row 1
一、Windows环境安装MySQL
1.1 下载MySQL(Community版)免安装软件包
下载地址:https://dev.mysql.com/downloads/mysql/
1.2 解压缩软件包
本教程是将软件包解压缩到到“D:\Program Files\mysql-8.0.19-winx64”目录下;
1.3 创建my.ini文件
在“D:\Program Files\mysql-8.0.19-winx64”目录下创建my.ini文件;内容如下:
[client]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\\Program Files\\mysql-8.0.19-winx64
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
# datadir=D:\\Program Files\\mysql-8.0.19-winx64\\data
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
1.3 初始化MySQL
运行CMD进入bin目录:【开始】-【搜索程序和文件】输入“cmd”,在搜索到的程序图标上点击鼠标右键,选择【以管理员身份运行】。
命令行下进入MySQL目录:
xxx> D:
D:\> cd D:\Program Files\mysql-8.0.19-winx64\bin
初始化操作:
D:\Program Files\mysql-8.0.19-winx64\bin> mysqld --initialize --console(随机密码)
执行完成后,会生成root 用户的初始默认密码,adb)JgLpe5Qe 就是初始密码,后续登录需要用到,你也可以在登陆后修改密码;
lo&QebTW1FQt
1.4 安装mysqld
D:\Program Files\mysql-8.0.19-winx64\bin> mysqld -install
mysqld --install [服务名](服务名可以不加默认为mysql);
提示:“mysql”用于执行SQL命令,“mysqld”用于执行数据库命令;
在环境变量中自动增加mysql环境变量; 在服务列表中自动增加mysql服务;
1.5 启动MySQL服务
D:\Program Files\mysql-8.0.19-winx64\bin> net start mysql
1.6 登录MySQL
D:\Program Files\mysql-8.0.19-winx64\bin> mysql -u root -p
D:\Program Files\mysql-8.0.19-winx64\bin> Enter password:(密码即是上面生成的)
我这里输入上面生成的密码提示错误,没有密码反而就登陆上了;不管了;
1.7 修改密码
修改密码:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'cvicsemsa';
//cvicsemsa为你的新密码
设置成功后,exit退出,重新登录验证密码。
1.8 卸载mysql
停止服务:使用net stop mysql('你的服务名') 命令 或 【win+R快捷键】》输入services.msc》进入服务窗口关闭mysql服务;
卸载程序:管理员运行cmd,进入安装目录bin目录,输入mysqld –remove或者sc delete mysql移除服务;
删除文件:进入mysql安装位置,删除mysql的文件夹;
删除C盘隐藏文件夹:显示隐藏文件后,删除C盘下的“C:\ProgramData\MySQL ”所有文件;
删除注册表信息:【win+R快捷键】》输入regedit 命令打开注册表窗口,删除以下文件;
HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Applications/MySQL
HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Applications/MySQL
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Applications/MySQL
删除环境变量里的配置:如果有更改了环境变量,那么删除系统变量中的MYSQL_HOME变量和删除Path变量中的mysql路径;
二、CentOS7环境安装MySQL
2.1 下载MySQL
地址同上,选择RedHat,OS Linux7,选择bundle即可,里面包含的组件最全,主要用到了common/libs/client/server四个;
2.2 检查MySQL是否已经存在
# rpm -qa | grep mysql
如果存在,则按照卸载章节进行删除;
2.3 检查mariadb并卸载
由于MySQL在CentOS7中收费了,所以已经不支持MySQL了,取而代之在CentOS7内部集成了mariadb,而安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB;
# rpm -qa | grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64
# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64 //下载删除,--nodeps:不检查依赖关系
# rpm -qa | grep mariadb
2.4 创建解压目录并上传解压
进入/usr/local/目录,创建mysql目录,并将下载的包上传到此目录,进行解压;
# cd /usr/local
# mkdir mysql
# ls -l
-----------上传文件--------------
# tar -xvf mysql-8.0.20-1.el7.x86_64.rpm-bundle.tar.tar //解压 tar 包
# cd /usr/local/mysql
# ls -l
2.5 安装
依次安装 common、libs、client、server;
安装时需要按照以下顺序进行安装rpm包,因为它们之间存在依赖关系;
# rpm -ivh mysql-community-common-8.0.20-1.el7.x86_64.rpm
# rpm -ihv mysql-community-client-plugins-8.0.20-1.el7.x86_64.rpm
# rpm -ivh mysql-community-libs-8.0.20-1.el7.x86_64.rpm
# rpm -ivh mysql-community-client-8.0.20-1.el7.x86_64.rpm
# rpm -ivh mysql-community-server-8.0.20-1.el7.x86_64.rpm
2.6 查看安装
# rpm -qa | grep mysql
配置文件:/etc/my.cnf
日志文件:/var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
可通过下述命令查找文件:
# find / -name my.cnf
etc/my.cnf
2.7 启动mysqld
启动mysqld服务,并设为开机自动启动。命令:
# service mysqld start //启动
# service mysqld stop //停止
# service mysqld status //状态
centos7+时,采用下述命令:
# systemctl start mysqld.service //centos7,启动
# systemctl stop mysqld.service //centos7,启动
# systemctl status mysqld.service //centos7,状态
# systemctl enable mysqld.service //centos7,设置开机启动
2.8 查看原始密码
在执行 systemctl start mysqld.service 后,会创建一个root@locahost账户,并且把初始的密码放到了/var/log/mysqld.log文件中;
打开/var/log/mysqld.log文件查看密码:
# cat /var/log/mysqld.log | grep password
26!gEuGY3DEn
2.9 修改密码
使用原始密码登陆,输入命令:
# mysql -u root -p
Enter password: //输入原始密码
通过命令来修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'cvicsemsa';
//cvicsemsa为你的新密码
注意Mysql8密码设置规则必须是大小写字母+特殊符号+数字的类型,一定要复杂,否则提示:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'cvicsemsa';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
因此,再次修改成复杂密码,这里记录下:Cvicse#2020
exit;或者quit; 退出mysql,使用新密码重新登陆即可;
2.10 修改data目录
由于mysql安装目录比较分散,data目录一般默认为/usr/lib/mysql;但有可能分区挂载的磁盘空间不足; 因此需要扩展分区或者修改data目录为单独挂载磁盘的分区;
以下图为例,根/分区仅50G,不足以支撑,且有单独的磁盘500G挂载到了/SDDCA;因此可将data目录放到/SDDCA下;
第0步:查看
# mysql -u root -p
> show global variables like '%dir%';
第1步:停止服务
# systemctl stop mysqld.service
# systemctl status mysqld.service
第2步:创建目录
# mkdir /SDDCA/mysql_data
--必要时修改该目录所有者及权限
第3步:修改/etc/my.cnf文件
# vi /etc/my.cnf
先注释原来的datadir、
# datadir=/var/lib/mysql
# socket=/var/lib/mysql/mysql.sock
datadir=/SDDCA/mysql_data/
socket=/SDDCA/mysql_data/mysql.sock
第4步:为mysql.sock加连接
ln -s /SDDCA/mysql_data/mysql.sock /var/lib/mysql/mysql.sock
第5步:启动服务并查看
# systemctl start mysqld.service
# mysql -u root -p
> show global variables like '%dir%'
2.11 卸载MySql
第一步:卸载安装的软件:如果执行删除命令时报错,加上--nodeps:不检查依赖关系;
# rpm -qa|grep -i mysql
# rpm -ev mysql-community-server-8.0.15-1.el6.x86_64
# rpm -ev mysql-community-client-8.0.15-1.el6.x86_64
# rpm -ev mysql-community-libs-8.0.15-1.el6.x86_64
# rpm -ev mysql-community-common-8.0.15-1.el6.x86_64
第二步:查找mysql目录,并予以删除:
# find / -name mysql
# rm -rf xxxx
第三步:删除/etc/my.cnf
# rm -rf /etc/my.cnf
第四步:删除/var/log/mysqld.log(如果不删除这个文件,会导致新安装的mysql无法生存新密码,导致无法登陆)
# rm -rf /var/log/mysqld.log
三、配置访问
3.1 开启防火墙端口(CentOS7)
# firewall-cmd --state //查看防火墙状态
# systemctl start firewalld.service //开启防护墙
# systemctl enable firewalld.service //设置防火墙自动启动
# systemctl restart firewalld.service //重启防火墙
# firewall-cmd --zone=public --add-port=3306/tcp --permanent //开启3306端口
--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启服务器后失效
# systemctl restart firewalld.service
# netstat -ntlp //查看开启的端口
# firewall-cmd --list-ports //查看开启的端口
3.2 客户端连接访问
Navicat等客户端进行配置连接时,默认情况下帐号不允许从远程登陆,只能在localhost;这个时候需要调整服务端配置,有以下两种方式:
- 改表法
登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"登录mysql数据库 执行如下命令:
按照如下操作即可:
# mysql -u root -p
inter password:
mysql> use mysql; //登录mysql,并切换至mysql库
mysql> update user set host='%' where user ='root'; //更新域属性,'%'表示允许外部任意IP访问
mysql> FLUSH PRIVILEGES; //刷新MySQL的系统权限
mysql> select host,user,plugin from user; //查看用户信息
mysql> SHOW GRANTS FOR root; //查询root用户的权限
经上述操作,即可在客户端链接mysql服务端了;
- 授权法
root用户使用密码Cvicse#2020从任何主机连接到mysql服务器,可按如下操作:
# mysql -u root -p
inter password:
mysql> use mysql; //登录mysql,并切换至mysql库
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Cvicse#2020' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES; //刷新MySQL的系统权限,注意授权后必须FLUSH PRIVILEGES;否则无法立即生效。
3.3 设置密码的验证方式
在使用Navicat for Mysql(应该是Navicat12之前的版本)连接mysql 8.0时连接的时候可能会出现如下错误:
Authentication plugin 'caching_sha2_password' cannot be loaded
这个是因为8.0使用了更安全的校验模式,mysql8.0 引入了新特性 caching_sha2_password;这种密码加密方式客户端不支持;客户端支持的是mysql_native_password 这种加密方式;
办法1:查看mysql 数据库中user表的 plugin字段;可以使用命令将他修改成mysql_native_password加密模式:
update user set plugin='mysql_native_password' where user='root';
办法2:改变你使用账号的校验方式;--------------在前面更改root默认密码时就已经修改了;
# ALTER USER "root"@"localhost" IDENTIFIED WITH mysql_native_password BY "xxxxxxx";
# FLUSH PRIVILEGES;
其实更推荐创建一个新账号使用支持的验证方式,保留root用户原有的加密校验方式,更为安全;
CREATE USER "xxxx@localhost" IDENTIFIED WITH mysql_native_password BY 'xxxxxxxx';
3.4 创建数据库及用户
# mysql -u root -p
inter password:
----创建数据库
mysql> create database statistic charset utf8;
----创建普通用户
-------注意%、localhost、IP的区别;
mysql> create user 'cmvsiac'@'%' identified by 'Cvicse#2021';
----将某个数据库授权给某个用户
-------注意all、select、create等权限
mysql> grant all privileges on statistic.* to 'cmvsiac'@'%';
----查看用户授权
mysql> show grants for cmvsiac;
四、日常操作
主要记录一些mysql日常使用的命令,供以后查询。
1.更改root密码
mysqladmin -uroot password 'yourpassword'
2.远程登陆mysql服务器
mysql -uroot -p -h192.168.137.10 -P3306
3.查询数据库
show databases;
4.进入某个数据库
use databasename;
5.列出数据库中的表
show tables;
6.查看某个表全部字段
desc slow_log;
show create table slow_log\G; (不仅可以显示表信息,还可以显示建表语句)
7.查看当前用户
select user();
8.查看当前所在数据库
select database();
9.创建新数据库(可以指定字符集)
create database db1 charset utf8;
10.创建新表
create table t1 (`id` int(4), `name` char(40));
11.查看数据库版本
select version();
12.查看数据库状态
show status; 当前会话状态
show global status; 全局数据库状态
show slave status\G; 查看主从数据库状态信息
13.查询数据库参数
show variables;
14.修改数据库参数
show variables like 'max_connect%';
set global max_connect_errors = 1000;(重启数据库会失效,要在配置文件中修改)
15.查看当前数据库队列
show processlist;
16.创建普通用户并授权给某个数据库
grant all on databasename.* to 'user1'@'localhost' identified by '123456';
17.查询表数据
select * from mysql.db; //查询该表中的所有字段
select count(*) from mysql.user; //count(*)表示表中有多少行
select db,user from mysql.db; //查询表中的多个字段
select * from mysql.db where host like '10.0.%';在查询语句中可以使用万能匹配 “%”
18.插入一行数据
insert into db1.t1 values (1, 'abc');
19.更改表的某一行数据
update db1.t1 set name='aaa' where id=1;
20.清空表数据
truncate table db1.t1;
21.删除表
drop table db1.t1;
22.清空数据库中的所有表(数据库名是eab12)
mysql -N -s information_schema -e "SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM TABLES WHERE TABLE_SCHEMA='eab12'" | mysql -f eab12
23.删除数据库
drop database db1;
24.数据库备份
mysqldump -uroot -p'yourpassword' mysql >/tmp/mysql.sql
25.数据库恢复
mysql -uroot -p'yourpassword' mysql </tmp/mysql.sql
26.新建普通用户
CREATE USER name IDENTIFIED BY 'ssapdrow';
27.更改普通用户密码
SET PASSWORD FOR name=PASSWORD('fdddfd');
28.查看name用户权限
SHOW GRANTS FOR name;
五、问题
5.1 Incorrect string value: '\xF0\x9F\x90\xB6\xF0\x9F...' for column 'user_name' at row 1
出现问题是因为字符集问题,具体可上网查阅;
第一步 查看字符集
mysql>show variables like 'character_set%';
第二步 修改服务器端字符集为utf8mb4:修改/etc/my.cnf,增加或修改成下述内容;
[client]
default-character-set=utf8mb4
[mysqld]
character-set-server = utf8mb4
# collation-server = utf8mb4_unicode_ci
# init_connect='SET NAMES utf8mb4'
# skip-character-set-client-handshake = true
[mysql]
default-character-set = utf8mb4
第三步 将已建的表字符集也改为utf8mb4;
alter table TABLE_NAME convert to character set utf8mb4 collate utf8mb4_bin;
相关推荐
- Mysql和Oracle实现序列自增(oracle创建序列的sql)
-
Mysql和Oracle实现序列自增/*ORACLE设置自增序列oracle本身不支持如mysql的AUTO_INCREMENT自增方式,我们可以用序列加触发器的形式实现,假如有一个表T_WORKM...
- 关于Oracle数据库12c 新特性总结(oracle数据库19c与12c)
-
概述今天主要简单介绍一下Oracle12c的一些新特性,仅供参考。参考:http://docs.oracle.com/database/121/NEWFT/chapter12102.htm#NEWFT...
- MySQL CREATE TABLE 简单设计模板交流
-
推荐用MySQL8.0(2018/4/19发布,开发者说同比5.7快2倍)或同类型以上版本....
- mysql学习9:创建数据库(mysql5.5创建数据库)
-
前言:我也是在学习过程中,不对的地方请谅解showdatabases;#查看数据库表createdatabasename...
- MySQL面试题-CREATE TABLE AS 与CREATE TABLE LIKE的区别
-
执行"CREATETABLE新表ASSELECT*FROM原表;"后,新表与原表的字段一致,但主键、索引不会复制到新表,会把原表的表记录复制到新表。...
- Nike Dunk High Volt 和 Bright Spruce 预计将于 12 月推出
-
在街上看到的PandaDunk的超载可能让一些球鞋迷们望而却步,但Dunk的浪潮仍然强劲,看不到尽头。我们看到的很多版本都是为女性和儿童制作的,这种新配色为后者引入了一种令人耳目一新的新选择,而...
- 美国多功能舰载雷达及美国海军舰载多功能雷达系统技术介绍
-
多功能雷达AN/SPY-1的特性和技术能力,该雷达已经在美国海军服役了30多年,其修改-AN/SPY-1A、AN/SPY-1B(V)、AN/SPY-1D、AN/SPY-1D(V),以及雷神...
- 汽车音响怎么玩,安装技术知识(汽车音响怎么玩,安装技术知识视频)
-
全面分析汽车音响使用或安装技术常识一:主机是大多数人最熟习的音响器材,有关主机的各种性能及规格,也是耳熟能详的事,以下是一些在使用或安装时,比较需要注意的事项:LOUDNESS:几年前的主机,此按...
- 【推荐】ProAc Response系列扬声器逐个看
-
有考牌(公认好声音)扬声器之称ProAcTablette小音箱,相信不少音响发烧友都曾经,或者现在依然持有,正当大家逐渐掌握Tablette的摆位设定与器材配搭之后,下一步就会考虑升级至表现更全...
- #本站首晒# 漂洋过海来看你 — BLACK&DECKER 百得 BDH2000L无绳吸尘器 开箱
-
作者:初吻给了烟sco混迹张大妈时日不短了,手没少剁。家里有了汪星人,吸尘器使用频率相当高,偶尔零星打扫用卧式的实在麻烦(汪星人:你这分明是找借口,我掉毛是满屋子都有,铲屎君都是用卧式满屋子吸的,你...
- 专题|一个品牌一件产品(英国篇)之Quested(罗杰之声)
-
Quested(罗杰之声)代表产品:Q212FS品牌介绍Quested(罗杰之声)是录音监听领域的传奇品牌,由英国录音师RogerQuested于1985年创立。在成立Quested之前,Roger...
- 常用半导体中英对照表(建议收藏)(半导体英文术语)
-
作为一个源自国外的技术,半导体产业涉及许多英文术语。加之从业者很多都有海外经历或习惯于用英文表达相关技术和工艺节点,这就导致许多英文术语翻译成中文后,仍有不少人照应不上或不知如何翻译。为此,我们整理了...
- Fyne Audio F502SP 2.5音路低音反射式落地音箱评测
-
FyneAudio的F500系列,有新成员了!不过,新成员不是新的款式,却是根据原有款式提出特别版。特别版产品在原有型号后标注了SP字样,意思是SpecialProduction。Fyne一共推出...
- 有哪些免费的内存数据库(In-Memory Database)
-
以下是一些常见的免费的内存数据库:1.Redis:Redis是一个开源的内存数据库,它支持多种数据结构,如字符串、哈希表、列表、集合和有序集合。Redis提供了快速的读写操作,并且支持持久化数据到磁...
- RazorSQL Mac版(SQL数据库查询工具)
-
RazorSQLMac特别版是一款看似简单实则功能非常出色的SQL数据库查询、编辑、浏览和管理工具。RazorSQLformac特别版可以帮你管理多个数据库,支持主流的30多种数据库,包括Ca...
你 发表评论:
欢迎- 一周热门
-
-
前端面试:iframe 的优缺点? iframe有那些缺点
-
带斜线的表头制作好了,如何填充内容?这几种方法你更喜欢哪个?
-
漫学笔记之PHP.ini常用的配置信息
-
其实模版网站在开发工作中很重要,推荐几个参考站给大家
-
推荐7个模板代码和其他游戏源码下载的网址
-
[干货] JAVA - JVM - 2 内存两分 [干货]+java+-+jvm+-+2+内存两分吗
-
正在学习使用python搭建自动化测试框架?这个系统包你可能会用到
-
织梦(Dedecms)建站教程 织梦建站详细步骤
-
【开源分享】2024PHP在线客服系统源码(搭建教程+终身使用)
-
2024PHP在线客服系统源码+完全开源 带详细搭建教程
-
- 最近发表
-
- Mysql和Oracle实现序列自增(oracle创建序列的sql)
- 关于Oracle数据库12c 新特性总结(oracle数据库19c与12c)
- MySQL CREATE TABLE 简单设计模板交流
- mysql学习9:创建数据库(mysql5.5创建数据库)
- MySQL面试题-CREATE TABLE AS 与CREATE TABLE LIKE的区别
- Nike Dunk High Volt 和 Bright Spruce 预计将于 12 月推出
- 美国多功能舰载雷达及美国海军舰载多功能雷达系统技术介绍
- 汽车音响怎么玩,安装技术知识(汽车音响怎么玩,安装技术知识视频)
- 【推荐】ProAc Response系列扬声器逐个看
- #本站首晒# 漂洋过海来看你 — BLACK&DECKER 百得 BDH2000L无绳吸尘器 开箱
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)