MySQL是关系型数据库 (Relational DBMS)
SQL: Structured Query Language:结构化查询语言
一:下载
下载连接:https://dev.mysql.com/downloads/mysql/
![](https://img.haomeiwen.com/i1741974/501f452c4edc938d.png)
![](https://img.haomeiwen.com/i1741974/77ea32b18254cb22.png)
下载好后解压到合适的位置
二:配置
1.设置path变量:
此电脑->属性->高级系统设置->环境变量->在系统变量(S)点击新建
![](https://img.haomeiwen.com/i1741974/7eb95c37ebac9f3b.png)
然后找到系统变量里面的Path 双击打开然后点击新建 增加一个 %MYSQL_HOME%\bin
2.配置my.ini: (没有my.ini自己创建,内容可参考如下配置)
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\workTools\MySQL\mysql-5.7.28-winx64
# 设置mysql数据库的数据的存放目录
datadir=C:\workTools\MySQL\mysql-5.7.28-winx64\data
# 允许最大连接数
max_connections=200
# 设置mysql服务端默认字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 注意这个参数,MySQL默认值导致在Windows 10 专业版上无法安装
innodb_flush_method=normal
skip-grant-tables
[mysqldump]
user=root
password=root
三:终端启动服务(以管理员身份运行cmd执行终端指令)
1.mysqld -install 创建服务 (window+r 然后输入cmd 打开终端输入services.msc打开服务界面 可以输入m快速搜索MySQL服务 右键属性可以设置自动还是手动启动该服务)
2.mysqld --initialize 初始化服务
3.net start mysql //启动mysql服务
4.mysql -h127.0.0.1 -uroot -proot (127.0.0.1是本机)//连接mysql
出现如下图所示MySQL就搞定了
![](https://img.haomeiwen.com/i1741974/a359c9c78781b541.png)
四:可能出现的问题
1.终端要以管理员身份运行
2.终端输入mysql -uroot -proot 出现 mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
(1).终端输入 mysqld --skip-grant-tables 打开新的cmd窗口就可以直接输入mysql 无账号登录了,任务管理器会有个新的mysqld.exe的进程
(2).请参考:( [mysqld] 下面添加上 skip-grant-tables 无验证方式启动mysql服务)
https://blog.csdn.net/huyanyan08/article/details/78727726
出现如下图所示就ok了
![](https://img.haomeiwen.com/i1741974/ff0d723b59b639dc.png)
- net start mysql mysql 服务无法启动 服务没有报告任何错误
(1).检查环境变量
(2).检查没有my.ini文件的basedir datadir 设置是否正确
(3).以管理员身份允许cmd 然后cd到mysql的bin文件夹 再执行mysqld -install
(4).删除mysql文件夹下的data文件(有的是DATA) 执行mysqld --initialize
(5).net start mysql
备注:
在安装mysql5.7版本时,经常会遇到mysql -u root -p直接回车登陆不上的情况,原因在于5.7版本在安装时自动给了一个随机密码,坑爹的是在init步骤的时候不像linux系统会给出命令行提示,需要手动在mysql目录下搜索*.err,以文本形式打开才能看到如下内容:
2019-12-25T06:12:48.271922Z 1 [Note] A temporary password is generated for root@localhost: ffUGcz>WR6Eh
ffUGcz>WR6Eh即为第一次的登陆密码
4.https://www.jianshu.com/u/17592bf6683c
五:以下为mysql相关指令
一、mysql服务操作
mysqld -install 创建服务
mysqld --initialize 初始化服务
sc delete mysql 删除服务
net start mysql //启动mysql服务
net stop mysql //停止mysql服务
mysql -h主机地址 -u用户名 -p用户密码 //连接mysql
如 mysql -h127.0.0.1 -uroot -proot (127.0.0.1是本机)
set password for 'username'@'host' = password('newpassword') //修改密码。
quit //退出mysql (exit也行)
二、数据库操作
show databases; //列出数据库
use database_name //使用database_name数据库
create database data_name //创建名为data_name的数据库
drop database data_name //删除一个名为data_name的数据库
三、表操作
show tables //列出所有表create talbe tab_name(id int(10) not null auto_increment primary key,name varchar(40),pwd varchar(40)) charset=gb2312; 创建一个名为tab_name的新表
drop table tab_name 删除名为tab_name的数据表
describe tab_name //显示名为tab_name的表的数据结构 ( desc tab_name 也行)
show columns from tab_name //同上
delete from tab_name //将表tab_name中的记录清空
select * from tab_name //显示表tab_name中的记录
mysqldump -uUSER -pPASSWORD --no-data DATABASE TABLE > table.sql //复制表结构
四、修改表结构
ALTER TABLE tab_name ADD PRIMARY KEY (col_name) 说明:更改表得的定义把某个栏位设为主键。
ALTER TABLE tab_name DROP PRIMARY KEY (col_name) 说明:把主键的定义删除
alter table tab_name add col_name varchar(20); //在tab_name表中增加一个名为col_name的字段且类型为varchar(20)
alter table tab_name drop col_name //在tab_name中将col_name字段删除
alter table tab_name modify col_name varchar(40) not null //修改字段属性,注若加上not null则要求原字段下没有数据SQL Server200下的写法是:Alter Table table_name Alter Column col_name varchar(30) not null;
如何修改表名:alter table tab_name rename to new_tab_name
如何修改字段名:alter table tab_name change old_col new_col varchar(40); //必须为当前字段指定数据类型等属性,否则不能修改
create table new_tab_name like old_tab_name //用一个已存在的表来建新表,但不包含旧表的数据
五、数据的备份与恢复
导入外部数据文本:
执行外部的sql脚本当前数据库上执行:mysql < input.sql指定数据库上执行:mysql [表名] < input.sql
数据传入命令 load data local infile "[文件名]" into table [表名];备份数据库:(dos下)mysqldump --opt school>school.bbbmysqldump -u [user] -p [password] databasename > filename (备份)mysql -u [user] -p [password] databasename < filename (恢复)
网友评论