一、解压Mysql 到本地磁盘目录
如: D:\code\mysql-8.0.18-winx64
二、在mysql 根目录下创建 my.ini 文件
D:\code\mysql-8.0.18-winx64\my.ini
[mysqld]
# 设置3306端口
port=3308
# 设置basedir为您的安装路径
basedir=D:/mysql-8.0.31
#设置datadir为你的数据目录的位置
datadir=D:/mysql-8.0.31/data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3308
default-character-set=utf8
三、用管理员身份 打开cmd命令窗口,进入bin目录 ,输入 初始化命令
输入 mysqld --initialize --console
记住:root@localhost: rK<2p7es#7CG 此为root密码
四、安装/卸载
mysqld install mysql8
sc delete mysql8
五、启动
net start mysql8
六、更改密码
1、mysql -u root -p
2、ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
查看安装的数据库
show databases;
use mysql;
show tables;
注:
如果安装后,不记得密码,操作如下:
1. 停止 MySql 服务
1. 卸载 mysql 服务
2. 删除根目录data文件夹内容
3. 重新初始化数据库,记录临时密码
4. 修改密码
5. 完成
---------------------------------数据库导入
数据库的导入(首先得创建数据,再导入)
1. mysql -h localhost -u root -p (进入mysql下面)
2. create database dbName; (创建数据库)
3. show databases; (就可看到所有已经存在的数据库,以及刚刚创建的数据库dbName)
4. use dbName; (进入dbName数据库下面)
5. show tables; (查看dbName数据库下面的所有表,空的)
6. source d:\dbName.sql (导入数据库表)
7. show tables; (查看dbName数据库下面的所有表)
8. desc dbName.tabelName; (查看表结构设计)
9. exit(或者ctrl + c)退出mysql
----------------------------------数据库导出
数据库的导出 (要在CMD状态下导出,非MySql下)
mysqldump -h IP -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -h localhost -u root -p dbName > d:\dbName.sql
--------------------------------关于用户及权限
查看默认MySQL用户:
select user,host,authentication_string from mysql.user;
如果要允许开放其他ip登录,则需要添加新的host。如果要允许所有ip访问,可以直接修改成“%”
CREATE USER 'xxh'@'%' IDENTIFIED WITH mysql_native_password BY 'xxh123!@#';
检查用户
select user, host, plugin, authentication_string from user\G;
#授权所有权限
GRANT ALL PRIVILEGES ON *.* TO 'xxh'@'%';
#授权基本的查询修改权限,按需求设置
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON *.* TO 'xxh'@'%';
查看用户权限
show grants for 'xxh'@'%';
--------------------------------关于字符集
创建数据库指定数据库的字符集
mysql>create database mydb character set utf-8;
修改数据库的字符集
mysql>use mydb
mysql>alter database mydb character set utf-8;
查看字符集
mysql> show variables like 'character_set_%';
SHOW VARIABLES LIKE 'collation_%';
配置文件修改
set character_set_client=utf8;
。。。
---------------------------
SHOW DATABASES; 显示数据库信息,有那些可用的数据库。
SHOW TABLES; 显示表信息,有那些可用的表
DESCRIBE tablename; 显示创建的表的信息
project2009new.sql
MySQL报错:Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property manually.
错误:Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property manually.
服务器返回无效时区。转到“高级”选项卡并手动设置“serverTimezone”属性。
mysql -u root -p
mysql>show variables like '%time_zone%';
mysql>set global time_zone='+8:00';
问题:每次重启服务都要重新配置一遍。
解决:mysql>set persist time_zo
------------------------设置外网访问
# 使用mysql数据库
mysql> use mysql;
# 查询host值:
mysql> select user,host from user;
# 如果没有"%"这个host值,就执行下面这两句:
mysql> update user set host='%' where user='root';
mysql> flush privileges;
# 或者也可以执行:
mysql>grant all privileges on *.* to root@'%' identifies by ' xxxx';
# 其中 第一个*表示数据库名;第二个*表示该数据库的表名;如果像上面那样 *.*的话表示所有到数据库下到所有表都允许访问;‘%':表示允许访问到mysql的ip地址;当然你也可以配置为具体到ip名称;%表示所有ip均可以访问;后面到‘xxxx'为root 用户的password;
# 举例:
# 任意主机以用户root和密码mypwd连接到mysql服务器
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypwd' WITH GRANT OPTION;
mysql> flush privileges;
# IP为192.168.1.102的主机以用户myuser和密码mypwd连接到mysql服务器
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.102' IDENTIFIED BY 'mypwd' WITH GRANT OPTION;
mysql> flush privileges;
至此以尝试外网连接数据库了