安装MySQL:
这里选择Custom:(自定义MySQL的安装路径)
注释:MySQL的安装路径中,不能含有中文;生产环境中,不要安装在C盘。
下面是选择MySQL的应用类型:
注释:第一种是开发服务器,将占用尽量少的内存;第二种是Web/应用服务器,将占用中等数量内存;最后一种是这台服务器只跑MySQL数据库,将占用全部的可用内存。
下面是选择数据库的用途:
注释:第一种是多功能用途,将把数据库优化成很好的InnoDB和高效率的MyISAM存储引擎;第二种是只用于事务处理类型,支持InnoDB、MyISAM;最后一种是非事务处理类型,只支持MyISAM;
一般选择第一种多功能用途。
选择MySQL的最大连接数:
注释:安装后,以MySQL的主配置文件为准。
选择MySQL的监听端口,默认是TCP 3306:
注释:可以在这里打开操作系统的防火墙的TCP 3306端口。
选择数据库的默认字符集:
注释:安装后,以MySQL的主配置文件为准。
设置MySQL的数据库管理员root@localhost的密码,这个超级用户非常重要,拥有对数据库完全控制的权限:
点击“Finish”按键,完成安装:
安装完成后,打开服务:
注释:MySQL服务默认会随系统的启动而自动启动。
根据上面安装时的配置,已在操作系统的防火墙打开TCP 3306端口:
使用客户端命令行程序,登录MySQL:
输入数据库管理员root@localhost的密码:
查看数据库里有哪些库:(以下4个库是默认就有的)
show databases;
查看MySQL的最大连接数:
show variables like '%max_connections%';
MySQL的主配置文件:
MySQL的主配置文件的内容:(根据上面安装时的配置,自动生成的)
[client]
port=3306
[mysql]
default-character-set=utf8
[mysqld]
port=3306
basedir="D:/MySQL/"
datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
character-set-server=utf8
default-storage-engine=INNODB
max_connections=800
query_cache_size=166M
table_cache=1520
tmp_table_size=59M
thread_cache_size=38
myisam_max_sort_file_size=100G
myisam_sort_buffer_size=59M
key_buffer_size=258M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=256K
innodb_additional_mem_pool_size=11M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=6M
innodb_buffer_pool_size=500M
innodb_log_file_size=100M
innodb_thread_concurrency=8
修改MySQL的最大连接数:
重启MySQL服务:
再次查看MySQL的最大连接数:
使用CMD命令行程序:
MySQL的命令都在安装目录下的bin里面:(截图有省略)
d:
cd MySQL\bin
dir
######
在CMD命令行程序里输出MySQL的最大连接数:(Windows下需要先切换工作目录)
D:\MySQL\bin>mysql -u"root" -p"123" -e"show variables like '%max_connections%';"
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 1500 |
+-----------------+-------+
D:\MySQL\bin>
D:\MySQL\bin>mysql -u"root" -p"123" -h"localhost" -e"show variables like '%max_connections%';"
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 1500 |
+-----------------+-------+
D:\MySQL\bin>
注释:使用的是库管理员root@localhost
使用参数“-sN”:
D:\MySQL\bin>mysql -u"root" -p"123" -h"localhost" -sN -e"show variables like '%max_connections%';"
max_connections 1500
D:\MySQL\bin>
######
输出所有数据库用户及其主机信息:(以下是初始状态)
D:\MySQL\bin>mysql -u"root" -p"123" -e"select user,host from mysql.user;"
+------+-----------+
| user | host |
+------+-----------+
| root | localhost |
+------+-----------+
D:\MySQL\bin>
######
查询数据库管理员root@localhost的权限,并把结果输出(追加)到文件:
D:\MySQL\bin>mysql -u"root" -p"123" -e"show grants for root@localhost;" >> d:\1.txt
D:\MySQL\bin>
在CMD命令行程序里输出文件的内容:
D:\MySQL\bin>type d:\1.txt
Grants for root@localhost
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257' WITH GRANT OPTION
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
######
新建一个库,指定其字符集:
D:\MySQL\bin>mysql -u"root" -p"123" -e"create database data1 character set utf8mb4 collate utf8mb4_unicode_ci;"
D:\MySQL\bin>
查询库data1的字符集,并把结果输出(覆盖)到文件:
D:\MySQL\bin>mysql -u"root" -p"123" -e"show create database data1;" > d:\2.txt
D:\MySQL\bin>
在CMD命令行程序里输出文件的内容:
D:\MySQL\bin>type d:\2.txt
Database Create Database
data1 CREATE DATABASE `data1` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */
D:\MySQL\bin>
注释:库data1的字符集为 utf8mb4_unicode_ci
######
创建一个数据库用户并授权:
MySQL服务器授权数据库用户zhuohua@'192.168.168.132'(密码1234),仅仅在使用IP地址192.168.168.132时可以进行访问,对库data1有完全控制的权限:
D:\MySQL\bin>mysql -u"root" -p"123" -e"grant all on data1.* to zhuohua@'192.168.168.132' identified by '1234';"
D:\MySQL\bin>
查询数据库用户zhuohua@'192.168.168.132'的权限,并把结果输出(覆盖)到文件:
D:\MySQL\bin>mysql -u"root" -p"123" -e"show grants for zhuohua@'192.168.168.132';" > d:\3.txt
在CMD命令行程序里输出文件的内容:
D:\MySQL\bin>type d:\3.txt
Grants for zhuohua@192.168.168.132
GRANT USAGE ON *.* TO 'zhuohua'@'192.168.168.132' IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF'
GRANT ALL PRIVILEGES ON `data1`.* TO 'zhuohua'@'192.168.168.132'
D:\MySQL\bin>
再次输出所有数据库用户及其主机信息:
D:\MySQL\bin>mysql -u"root" -p"123" -e"select user,host from mysql.user;"
+---------+-----------------+
| user | host |
+---------+-----------------+
| zhuohua | 192.168.168.132 |
| root | localhost |
+---------+-----------------+
D:\MySQL\bin>
############
############
Windows客户端使用SQLyog,远程访问MySQL数据库:
运行 SQLyogEnt.exe ,新建一个连接:
注释:
MySQL服务器的IP地址 192.168.168.133
数据库用户名 zhuohua
密码 1234
端口 3306
笺注:
Windows客户端的IP地址为 192.168.168.132
使用数据库用户zhuohua@'192.168.168.132'
SQLyog的主界面:
注释:数据库用户 zhuohua@'192.168.168.132' 可以登录MySQL,只对库data1有完全控制的权限。
使用SQLyog的查询编辑器,查看MySQL的最大连接数:
代码:
show variables like '%max_connections%';
使用SQLyog的查询编辑器创建一个表:
代码:
Use data1;
create table t_1(
id int not null auto_increment,
name varchar(20) not null,
sex varchar(2),
age tinyint,
grade varchar(5),address varchar(50),
chinese float,math float,
primary key (id)
);
使用查询编辑器往表data1.t_1中一次性插入多条记录:(字段id为主键、标识符列,会自动增长,不用写)
Use data1;
INSERT INTO t_1 (name,sex,age,grade,address,chinese,math) VALUES ('张三','男',13,'三年一班','广州市',108,77);
INSERT INTO t_1 (name,sex,age,grade,address,chinese,math) VALUES ('李小芳','女',14,'三年二班','佛山市',-60,48.5);
INSERT INTO t_1 (name,sex,age,grade,address,chinese,math) VALUES ('张大白','男',13,'三年一班','广州市',120,99.5);
在查询编辑器里输出表data1.t_1中的所有记录:
SELECT * FROM data1.t_1;
############
############
在库data1中创建表t_2:
Use data1;
create table t_2(
id int not null auto_increment,
name varchar(20) not null,
phone varchar(30),
english float,
primary key (id)
);
使用查询编辑器往表data1.t_2中一次性插入多条记录:(字段id为主键、标识符列,会自动增长,不用写)
Use data1;
INSERT INTO t_2 (name,phone,english) VALUES ('张三','11234',60);
INSERT INTO t_2 (name,phone,english) VALUES ('张大白','22234',70.5);
在查询编辑器里输出表data1.t_2中的所有记录:
Use data1;
SELECT * FROM t_2;
############
############
多表交叉查询:(有直接相通的字段时)
Use data1;
select t_1.name,t_1.grade, t_1.chinese,t_2.english from t_1,t_2 where t_1.name = t_2.name;
Use data1;
select t_1.name,t_1.grade, t_1.chinese,t_2.english from t_1,t_2 where t_1.name = t_2.name and t_1.name = '张大白';
Use data1;
select t_1.name,t_1.grade, t_1.chinese,t_2.english from t_1,t_2 where t_1.name = t_2.name and t_1.chinese = 108;
Use data1;
select t_1.name,t_1.grade, t_1.chinese,t_2.english from t_1,t_2 where t_1.name = t_2.name and t_2.english = 70.5;
############
############
将表data1.t_1、data1.t_2的一些字段、记录放到一个新表中:
先复制表结构:
Use data1;
CREATE TABLE new_t_1 SELECT t_1.name,t_1.grade, t_1.chinese,t_2.english FROM t_1,t_2 WHERE 1=2;
再复制表数据:
INSERT INTO new_t_1 (name,grade,chinese,english) SELECT t_1.name,t_1.grade, t_1.chinese,t_2.english FROM t_1,t_2 where t_1.name = t_2.name and t_1.name = '张大白';
上面的代码执行成功后,再查看新表data1.new_t_1的表数据:
Use data1;
SELECT * FROM new_t_1;
##################
##################
在库data1中再创建表table1、table2、table3:
Use data1;
create table table1(
id int not null auto_increment,
number varchar(50) not null,
name varchar(50),
address varchar(50),
primary key (id)
);
create table table2(
id int not null auto_increment,
number varchar(50) not null,
name varchar(50),
class varchar(20),
primary key (id)
);
create table table3(
id int not null auto_increment,
class varchar(20),
teacher varchar(20),
primary key (id)
);
插入记录:(字段id为主键、标识符列,会自动增长,不用写)
Use data1;
insert into table1 (number,name,address) values ('A001','小明','佛山');
insert into table1 (number,name,address) values ('A002','小李','广州');
insert into table1 (number,name,address) values ('A003','小海','肇庆');
insert into table2 (number,name,class) values ('A001','小明','跆拳道');
insert into table2 (number,name,class) values ('A002','小李','空手道');
insert into table2 (number,name,class) values ('A003','小海','跆拳道');
insert into table3 (class,teacher) values ('跆拳道','李大杰');
insert into table3 (class,teacher) values ('空手道','小龙');
在查询编辑器里一次性输出表data1.table1、data1.table2、data1.table3中的所有记录:
USE data1;
SELECT * FROM table1;
SELECT * FROM table2;
SELECT * FROM table3;
############
############
多表交叉查询:(没有直接相通的字段时)
查询选择了课程“空手道”的学生信息,并显示对应的课程老师:
Use data1;
select table1.number,table1.name, table1.address,table2.class,table3.teacher from table1,table2,table3 where table1.number = table2.number and table2.class = table3.class and table3.class = '空手道';
笺注:要有间接相通的字段,才能进行查询。
查询选择了课程“跆拳道”的学生信息,并显示对应的课程老师:
Use data1;
select table1.number,table1.name, table1.address,table2.class,table3.teacher from table1,table2,table3 where table1.number = table2.number and table2.class = table3.class and table3.class = '跆拳道';
############
############
将表data1.table1、data1.table2、data1.table3的一些字段、记录放到一个新表中:
先复制表结构:
Use data1;
CREATE TABLE new_t_2 SELECT table1.number,table1.name, table1.address,table2.class,table3.teacher FROM table1,table2,table3 WHERE 1=2;
再复制表数据:
INSERT INTO new_t_2 (number,name,address,class,teacher) SELECT table1.number,table1.name, table1.address,table2.class,table3.teacher from table1,table2,table3 where table1.number = table2.number and table2.class = table3.class and table3.class = '跆拳道';
上面的代码执行成功后,再查看新表data1.new_t_2的表数据:
Use data1;
SELECT * FROM new_t_2;
############
############
再创建一个数据库用户并授权:
MySQL服务器授权数据库用户zhuohua@'192.168.168.154'(密码886),仅仅在使用IP地址192.168.168.154时可以进行访问,对库data1有完全控制的权限:
D:\MySQL\bin>mysql -u"root" -p"123" -e"grant all on data1.* to zhuohua@'192.168.168.154' identified by '886';"
D:\MySQL\bin>
查看数据库用户zhuohua@'192.168.168.154'的权限:
D:\MySQL\bin>mysql -u"root" -p"123" -e"show grants for zhuohua@'192.168.168.154';"
+-------------------------------------------------------------------------------
---------------------------------------+
| Grants for zhuohua@192.168.168.154
|
+-------------------------------------------------------------------------------
---------------------------------------+
| GRANT USAGE ON *.* TO 'zhuohua'@'192.168.168.154' IDENTIFIED BY PASSWORD '*F961C54AFEB4D281CE53D7CB8E7822890D86FFFC' |
| GRANT ALL PRIVILEGES ON `data1`.* TO 'zhuohua'@'192.168.168.154'
|
+-------------------------------------------------------------------------------
---------------------------------------+
D:\MySQL\bin>
再次输出所有数据库用户及其主机信息:
D:\MySQL\bin>mysql -u"root" -p"123" -e"select user,host from mysql.user;"
+---------+-----------------+
| user | host |
+---------+-----------------+
| zhuohua | 192.168.168.132 |
| zhuohua | 192.168.168.154 |
| root | localhost |
+---------+-----------------+
D:\MySQL\bin>
注释:zhuohua@'192.168.168.132'、zhuohua@'192.168.168.154'是两个不同的数据库用户。
############
Linux客户端远程登录MySQL数据库:
[root@centos8 ~]# mysql -u"zhuohua" -p"886" -h"192.168.168.133"
注释:
MySQL服务器的IP地址 192.168.168.133
数据库用户名 zhuohua
密码 886
端口 3306
笺注:
Linux客户端需要安装MySQL或MariaDB
Linux客户端的IP地址为 192.168.168.154
使用数据库用户zhuohua@'192.168.168.154'
在Linux客户端查看数据库里有哪些库:
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| data1 |
+--------------------+
2 rows in set (0.002 sec)
MySQL [(none)]>
注释:数据库用户 zhuohua@'192.168.168.154' 可以登录MySQL,只对库data1有完全控制的权限。
######
在Linux客户端查看MySQL的最大连接数:
[root@centos8 ~]# mysql -u"zhuohua" -p"886" -h"192.168.168.133" -e"show variables like '%max_connections%';"
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 1500 |
+-----------------+-------+
[root@centos8 ~]#
使用参数“-sN”:
[root@centos8 ~]# mysql -u"zhuohua" -p"886" -h"192.168.168.133" -sN -e"show variables like '%max_connections%';"
max_connections 1500
[root@centos8 ~]#
[root@centos8 ~]# mysql -u"zhuohua" -p"886" -h"192.168.168.133" -sN -e"show variables like '%max_connections%';" |awk '{print $2}'
1500
[root@centos8 ~]#
######
在Linux客户端查看表data1.new_t_1的表数据:
[root@centos8 ~]# mysql -u"zhuohua" -p"886" -h"192.168.168.133" -e"SELECT * FROM data1.new_t_1;"
+-----------+--------------+---------+---------+
| name | grade | chinese | english |
+-----------+--------------+---------+---------+
| 张大白 | 三年一班 | 120 | 70.5 |
+-----------+--------------+---------+---------+
[root@centos8 ~]#
######
在Linux客户端查看表data1.new_t_2的表数据:
[root@centos8 ~]# mysql -u"zhuohua" -p"886" -h"192.168.168.133" -e"Use data1;SELECT * FROM new_t_2;"
+--------+--------+---------+-----------+-----------+
| number | name | address | class | teacher |
+--------+--------+---------+-----------+-----------+
| A001 | 小明 | 佛山 | 跆拳道 | 李大杰 |
| A003 | 小海 | 肇庆 | 跆拳道 | 李大杰 |
+--------+--------+---------+-----------+-----------+
[root@centos8 ~]#
相关文章:
Windows2008R2_安装MySQL5.5
Windows下MySQL的备份和还原
Python3脚本管理Windows下的MySQL
CentOS8_在Docker中安装MySQL
MySQL的SQL语句
使用SQLyog远程管理MySQL
Windows2012R2_IIS+PHP Manger+Zend Guard Loader/OPcache
MSSQL的SQL语句(多表交叉查询) |