mysql免安装版配置

mysql免安装版配置


配置环境变量


  • 将C:\mysql\mysql8.0.12\mysql-8.0.11-winx64\bin添加到环境变量中

注意是自己解压mysql文件的目录下的bin文件目录下

创建my.ini文件

  • 在mysql目录下创建my.ini文件
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=C:\mysql\mysql8.0.12\mysql-8.0.11-winx64/bin
# 设置mysql数据库的数据的存放目录
datadir=C:\mysql\mysql8.0.12\mysql-8.0.11-winx64/bin\\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
#使用–skip-external-locking MySQL选项以避免外部锁定。该选项默认开启
external-locking = FALSE
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password

[mysqld_safe]
log-error=C:\mysql\mysql8.0.12\mysql-8.0.11-winx64/bin\\mysql_oldboy.err
pid-file=C:\mysql\mysql8.0.12\mysql-8.0.11-winx64/bin\\mysqld.pid
# 定义mysql应该支持的sql语法,数据校验
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

初始化数据库


  • 管理员模式打开命令行窗口输入

cd C:\mysql\mysql8.0.12\mysql-8.0.11-winx64\bin

mysqld --initialize --user=mysql --console

  • 注意此时会出现随机的初始密码,务必复制保存,后面要用
  • 报缺少msvcp140.dll,下载VC++ 2015配置文件,安装解决

下载地址

  • 如果此处提示无法写入文件,可能是“\bin”的原因,改为“/bin”,“\b被当成转义字符”
  • 提示成功后输入

mysqld --install

  • 如果提示已安装先卸载再安装,否则后面易报错

mysqld --remove

mysqld --install

修改root账户初始密码


  • 管理员方式运行cmd

net start mysql

  • 启动后输入

mysql -u root -p

  • 输入密码

粘贴之前保存的随机密码

  • 修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';

注意:newpassword为自己设的新密码,分号不能丢

  • 提示成功后输入

FLUSH PRIVILEGES;


远程连接访问


  • 允许他人访问本机

use mysql;
update user set host='host1' where user='root';

host1为允许访问的主机的IP地址,可以设为'%',允许任何人访问

  • 访问他人主机

建立连接时将主机和密码设为目标主机的IP和数据库登录密码

使用


  • 在bin目录下执行

net start mysql
mysql -uroot -ppassword

注意:-u后面为用户名,-p后面为密码

基本指令


创建数据库

create database student;

列出数据库

show databases;

使用数据库

use database_name;

删除数据库

drop database dbname;

创建表格

create table infor(
  sno varchar(15) not null,
  name varchar(20) not null,
  sex varchar(10) not null,
  age  int,
  major varchar(30) not null,
  class varchar(30) not null,
  primary key(sno)
  )engine=InnoDB default charset=utf8;

列属性设置

  • 1.列描述

comment: 表示描述,没有实际含义,是专门用来描述字段的

create table my_friend(
    name varchar(20) not null comment '姓名',
    age tinyint not null comment '年龄'
)charset utf8;

show create table my_friend;
  • 2.默认值

default,某一数据会经常性出现某个具体的值

create table my_default(
    name varchar(20) not null,
    age int unsigned default 0,
    sex  default '男'
)charset utf8;
  • 3.限制属性值的范围
create table my_default(
    name varchar(20) not null,
    age int unsigned default 0,
    sex enum('男','女') default '男'
)charset utf8;

查看所有表格

  • 当前数据库

show tables;

显示表格属性

  • 显示当前数据库中的表格infor属性

desc infor;

插入数据

insert into infor(sno, name, sex, age, major, class)
values('01', 'xiaocaicai', 'male', 22, 'python', 'python01'),
('02', 'LEIZI', 'male', 18, 'java', 'java01'),
('03', '由美', 'fomale', 22, 'html', 'html01'),
('04', '丸子', 'fomale', 18, 'UI', 'UI01');

查询表格


  • 1.查询所有

select * from infor;

  • 2.查询sno,name

select sno, name from infor;

  • 3.条件查询,年龄大于十八的

select * from infor where age >18;

  • 4.年龄在(18,23]

select * from infor where age > 18 and age <=23;

  • 5.where条件设置,只查询18和23,还有not in

select * from infor where age in (18,23);

  • 6.排序(desc降序, asc升序)

select * from infor where age > 18 and age <=23 order by age desc;

  • 7.限制查询条件,从下标0到下标1(不含下标2)
select * from infor where age > 18 and age <=23
order by age desc
limit 0,2;
  • 8.模糊查找
匹配字段 结果
%E 以E结尾
E% 以E开头
%E% 含有E的任意字符
_E E前有一个字符
E__ E后有两个字符

查找name以'L'开头的人员信息
select * from infor where name like 'L%';

  • 9.联表查询
   create table score(
   sno varchar(15) not null,
   math float,
   english float,
   Chinese float,
   history float,
   primary key(sno)
   )engine=InnoDB default charset=utf8;
 ==>
   insert into score(math, english, Chinese, history)
   values('01', 87, 93, 78, 88),
   ('02', 76, 78, 80, 90);

添加外键
Alter table score add foreign key(sno) references infor(sno);

  • 注意: 设置外键后数据的更新操作会受到关联表(主表)的限制, </br>
    即需要先更新主表才能更新子表(设置外键的表),这样可以防止主副表数据不一致.

  • 10.复合条件查询

    • 子条件查询

select * from stu where sno in( select * from score where math >70 and math <80 );

  • 查询两表按需取列

select stu.*,score.math,score.english from stu,score where stu.sno=score.sno;

  • 自然合并去重

select * from stu natural join score where stu.sno=score.sno;

按组查询


  • 1.使用group by,只返回组的第一行

select * from stu group by sex;

  • 2.使用group_concat(),查看每个组的详细信息

select *,使用group_concat()

 SELECT *,group_concat(sno, name) FROM stu GROUP BY class;
  • 3.聚合函数

count(): 统计记录的数目 </br>

count(*)以优化形式快速返回,count(columns)统计列中非空的数量

sum() : 求字段的和 </br>
avg() : 求字段的平均值 </br>
max() : 求字段的最大值 </br>
min() : 求字段的最小值 </br>

  • count(*):示例

select count(*) as '总人数' from stu;

select major as '专业',count(*) as "人数" from stu group by major;

  • avg(): 示例

select avg(age) as '平均年龄' from stu;

  • sum(): 示例

select sum(age) from stu;

  • max(): 示例

select max(age) from stu;
+综合示例

select major,count(*) as '总人数',sum(age) as '年龄和值',
       max(age) as '最大年龄',min(age) as '最小年龄'
       from stu group by major;
  • 4.使用having 对分组结果进行二次筛选
select major,count(*) as '人数大于2的'
from stu group by major having count(*)=2;

删除信息

delete from infor where sno='001';

更新数据

update infor set age=23 where name='LZ';

删除表格

drop table student;

快速创建表格

  • 1、复制表格

create table stu like infor;

  • 2、复制指定列,可以添加限制条件

create table stu2 as select name,sno from infor where age >= 23;

增加一个列

Alter table stu2 add column age int;

添加主键

Alter table stu2 add primary key(sno);

添加外键

Alter table score add foreign key(sno) references infor(sno);

删除主键

Alter table stu2 drop primary key;

python连接操作mysql


连接数据库


import pymysql
cnx = pymysql.connect(user='root', password='lz3v',
                              host='127.0.0.1',  
                              # 主机,127.0.0.1为本地主机
                              port=3306,  # mysql数据库端口
                              database='student',
                              charset='utf8')

# 关闭连接
cnx.close()

创建新表

import pymysql
cnx = mysql.connector.connect(user='root', password='lz3v',
                              host='127.0.0.1',  
                              # 主机,127.0.0.1为本地主机
                              port=3306,  # mysql数据库端口
                              database='student',
                              charset='utf8')
# 创建访问游标,充当管理者
cursor = cnx.cursor()
sql_create = '''
  create table score(
  sno varchar(15) not null,
  math float,
  english float,
  Chinese float,
  history float,
  primary key(sno)
  )engine=InnoDB default charset=utf8;
'''
result = cursor.execute(sql_create)
print(result)
cnx.close()
'''      

常见问题

  • 1、使用安装包MSI文件安装mysql后,再对免安装版进行操作容易发生无法启动服务的问题
  • 2、MSI直接安装mysql后有配置过免安装版,容易发生服务冲突:

可能导致直装版出现输入密码后闪退

解决办法,进入到计算机管理找到服务关闭MySQL服务,启动MySQL80(可能不是80,是其他数字)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,366评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,521评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,689评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,925评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,942评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,727评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,447评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,349评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,820评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,990评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,127评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,812评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,471评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,017评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,142评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,388评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,066评论 2 355

推荐阅读更多精彩内容