win7 下面 安装 mysql数据库
参考网址
https://www.runoob.com/mysql/mysql-install.html
下载地址:
https://dev.mysql.com/downloads/mysql/
点击 Download 按钮进入下载页面,
点击下图中的 No thanks, just start my download.
就可立即下载:
下载下来的 安装包名称是:
mysql-8.0.19-winx64.zip
将其解压,并复制到C盘:
my.ini是后来新建的
C:\mysql-8.0.19-winx64
修改配置文件
接下来我们需要配置下 MySQL 的配置文件
打开刚刚解压的文件夹 C:\mysql-8.0.19-winx64 ,在该文件夹下创建 my.ini 配置文件,
编辑 my.ini 配置以下基本信息:
[client]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\\mysql-8.0.19-winx64
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
# datadir=C:\\web\\sqldata
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
启动下 MySQL 数据库
以管理员身份打开 cmd 命令行工具,切换目录:
以管理员身份打开 cmd 命令行工具,切换目录:
cd /D C:\mysql-8.0.19-winx64\bin
初始化数据库:
mysqld --initialize --console
执行完成后,会输出 root 用户的初始默认密码,如:
原始内容:
C:\mysql-8.0.19-winx64\bin>mysqld --initialize --console
2020-04-05T16:14:30.420203Z 0 [System] [MY-013169] [Server] C:\mysql-8.0.19-winx64\bin\mysqld.exe (mysqld 8.0.19) initializing of server in
2020-04-05T16:14:30.423201Z 0 [Warning] [MY-013242] [Server] --character-set-server: 'utf8' is currently an alias for the character set UTF
a future release. Please consider using UTF8MB4 in order to be unambiguous.
2020-04-05T16:14:32.976201Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: c31RC2k*mnMc
C:\mysql-8.0.19-winx64\bin>
c31RC2k*mnMc
c31RC2k*mnMc 就是初始密码,后续登录需要用到,你也可以在登陆后修改密码。
输入以下安装命令:
mysqld install
启动输入以下命令即可:
net start mysql
初始化后再运行 net start mysql 即可启动 mysql。
遇到问题
解决方法:
由于找不到VCRUNTIME140_1.dll,无法继续执行代码。重新安装程序可能会解决此问题
https://blog.csdn.net/qq_42365534/article/details/102847013
如果需要微软官方下载,使用: https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads 这个页面中“Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019”部分提供的安装文件
登录 MySQL
当 MySQL 服务已经运行时, 我们可以通过 MySQL 自带的客户端工具登录到 MySQL 数据库中, 首先打开命令提示符, 输入以下格式的命名:
mysql -h 主机名 -u 用户名 -p
参数说明:
-h : 指定客户端所要登录的 MySQL 主机名, 登录本机(localhost 或 127.0.0.1)该参数可以省略;
-u : 登录的用户名;
-p : 告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空, 可以忽略此选项。
如果我们要登录本机的 MySQL 数据库,只需要输入以下命令即可:
mysql -u root -p
按回车确认, 如果安装正确且 MySQL 正在运行, 会得到以下响应:
若密码存在, 输入密码登录, 不存在则直接按回车登录。登录成功后你将会看到 Welcome to the MySQL monitor… 的提示语。
然后命令提示符会一直以 mysq> 加一个闪烁的光标等待命令的输入, 输入 exit 或 quit 退出登录。
修改 密码
mysql 8
为root用户设置密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
然后
FLUSH PRIVILEGES;
设置远程登陆
update user set host='%' where user='root';
然后
FLUSH PRIVILEGES;
查看数据库:
>mysql -u root -p
SHOW DATABASES;
使用数据库,并查看其中的tables;
参考脚本
# QQSQL.txt
数据表:分为 用户信息表(users) 好友关系表(friends) 聊天记录表 (history)
数据库代码(直接复制使用即可)
---------------------------------------------------------------------------------------------------------------
create database RootDB default character set utf8;
use RootDB;
create table users(
id int auto_increment primary key,
rootname int,
nickname varchar(20),
pwd varchar(32),
gender enum("男","女","保密"),
tel varchar(11),
address varchar(100),
email varchar(30),
birthday varchar(15),
avatar text,
style varchar(100),
onlinestatus enum("在线","离线"),
time timestamp default now(),
last_online timestamp default now())character set utf8;
insert into users(rootname,nickname,pwd,gender,tel,address,email,birthday,avatar,style,onlinestatus) values("10000","10000的昵称","123","男","13434557788","湖北省武汉市青山区东湖景园","[email protected]","5月4日","images/avatar1.jpg","这个人很懒,什么都没留下!","离线")
,("10001","10001的昵称","123","男","13438874114","湖北省武汉市洪山区光谷","[email protected]","6月15日","images/avatar2.jpg","天空飘来5个字,这都不是事","离线"),("10002","10002的昵称","123","男","18974557788","北京市朝阳区吃瓜群众聚集地","[email protected]","1月26日","images/avatar3.jpg","我是谁,我在干什么,这里是哪里!","离线");
create table friends(
id int auto_increment primary key,
rootname int not null,
f_rootname int not null)character set utf8;
insert into friends(rootname,f_rootname) values("10000","10001"),("10000","10002"),("10001","10000"),("10001","10002"),("10002","10000"),("10002","10001");
create table history(
id int auto_increment primary key,
rootname int not null,
f_rootname int not null,
record text,
time timestamp default now())character set utf8;
---------------------------------------------------------------------------------------------------------------
数据库: RootDB
create database RootDB default character set utf8;
-----------------------------------------------------
用户信息表(users):
id(int) rootname(int)(自动随机生成) nickname(varchar(20) pwd(varchar(16)(MD5加密) gender(enum("男","女","保密"))) tel(varchar(11)) address(varchar(100) email(varchar(30)) birthday(varchar(15)) avatar(text) style(varchar(100)) onlinestatus(enum(1,0)) time(timestamp)(注册时间) last_online(timestamp)
-----------------------------------------------------
好友关系表(friends):
id(int) rootname(int) f_rootname(int)
0 10000 10001
1 10001 10000
------------------------------------------------
历史记录表(history)
id(int) rootname(int) f_rootname(int) record(text) time(timestamp)
0 10000 10001 你好 ...
1 10000 10001 在干嘛 ...
2 10001 10000 在学习 ...
select record from history where (rootname = 10000 and f_rootname = 10001) or (rootname = 10001 and f_rootname = 10000) order by id desc limit 5;