1、重新部署
rm -rf arch/*
rm -rf data/*
2、scripts/mysql_install_db --user=mysqladmin --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
3、空密码
(1)service mysql start
(2)mysql
(3)show databases;
(4)use mysql;
(5)show tables;
(6)**查看user的字段
desc user;
(7)**查看创建user表的语句
show creat table user;
(8)查看user表中host,user,password的内容
select Host,User,password from mysql.user;
=
use mysql;
select Host,User,password from user;
4、设置密码
update mysql.user set password =password('123456') where user = 'root';(xshell进入mysql记得;结尾,否则会报错。Oracle工具可以不用)
记得linux需要刷新权限:
flush privileges;
相当于oracle的commit。
此时使用root账号重新登陆mysql需填写密码
5、 安装DBeaver
第一个方法:
(1)安装jdk
(2)配置jdk的环境变量
打开环境变量配置。计算机→属性→高级系统设置→高级→环境变量,在系统变量中配置。
配置JAVA_HOME。新建,变量名JAVA_HOME,变量值,jdk路径,我的路径是D:\jdk1.8.0_171,保存。
配置CLASSPATH。新建,变量名CLASSPATH,变量
值,.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(第一个分号前前面有一个点)。
配置Path。打开Path变量,在变量值最前加入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
(3)在官网下载安装程序,直接安装启动
第二个方法:
(1)安装jdk
(2)配置环境变量
(3)下载dbeaver压缩包
(4)解压后,新建dbeaver.exe的快捷方式,快捷方式上右键 -> 属性 -> 快捷方式 -> 目标,编辑如下
dbeaver.exe -vm D:\jdk1.8.0_171\bin\javaw.exe
(5)启动
6、登陆测试
(1)选择mysql数据库,填写
ip地址:192.168.137.130(ifconfig)
数据库:mysql
用户名:root
密码:123456
(2)安装驱动文件,点击测试链接,会自动提示更新驱动。
(3)链接错误的解决
这是因为user表仅限本机地址登陆mysql,因此需要改其中的ip或者新增ip
解决办法:
update mysql.user set Host='%' where Host = 'hadoop001'
-------->不限制机器登陆,任意ip(同理可以选定某机器登陆)
再链接测试,完成连接mysql
7、生产上关于通过linux登陆mysql需要注意的点:
(1)mysql -uroot -p123456(通过运用于shell脚本,终端基本不用,因为可以通过history命令看到密码)
(2)mysql -uroot -p 123456(因为 空格也会当作是密码的一部分,所以会登陆失败)
(3)查看命令帮助,可在登陆mysql的时候指定使用哪个数据库:
mysql -uroot -p123456 -h192.168.137.130 mysql
(4)创建新DB和新用户
create database HBinzdb;
grant all privileges on HBinzdb.* to [email protected]'192.168.31.223' identified by '123456';
此时打开dbeaver,复制多一个连接。然后进行连接编辑,内容如下:
数据库:HBinzdb对应新创建的数据库
用户名:HBinz对应新创建的用户
这个时候报错:192.168.137.1无权限
原因分析:
目前window IP:192.168.31.223 用户:HBinz;
linux IP:192.168.137.130 mysql;
但是由于我们是运用虚拟机搭建的系统,而VM8的网卡IP:192.168.137.1,window的网络是从192.168.31.223经由VM8:192.168.137.1跳转到mysql,因此应该对192.168.137.1授权。
所以:
grant all privileges on HBinzdb.* to [email protected]'192.168.137.1' identified by '123456';
成功:
最后一定要输入:
flush privileges;
8、查看当前mysql连接数,适当kill:
show processlist;
kill ID;
kill 2;mysql输入指令一定要带分号
总结:
找到哪个processlist卡,锁死-->和开发确认好-->kill
9、常用的mysql语法
(1)建表:
create table HBinzdata(
id int,
name varchar(100),
age int,
createtime timestamp,--------生产一定要建的字段
createuser varchar(100),
updatetime timestamp,--------生产一定要建的字段
updateuser varchar(100)
);----以分号结尾
(2)DDL(有table,数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言 ):create,drop等
drop table hbinzdata;
DML(无table,据操作语言,SQL中处理数据等操作统称为数据操纵语言):insert,update,delete,select等
向id、name、age插入内容:
insert into hbinzdata (id,name,age) values (1,'HBinz',18);
更新name为HBinz的年龄为16:
update hbinzdata set age = 16 where name = 'HBinz'
删除name为HBinz的那一行数据:
delete from hbinzdata where name = 'HBinz'
执行多行insert语句:
查询语句,查询HBinzdata的所有行:
select * from hbinzdata
查询某几列内容:
select id ,name from hbinzdata
查询某个符合某条件的内容(不区分大小写):
select * from hbinzdata where name = 'ly'
DCL(数据控制语言,用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等 ):commit等
(3)char:保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多 255 个字符。
VARCHAR:保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多 255 个字符。注释:如果值的长度大于 255,则被转换为 TEXT(存放最大长度为 65,535 个字符的字符串。) 类型。
(4)mysql高级版:
https://www.cnblogs.com/duhuo/p/5682565.html
1)AUTO_INCREMENT(Auto-increment 会在新记录插入表中时生成一个唯一的数字。)的使用:
2)生产中,建表的框架:
3)创建时间和更新时间字段的常用定义格式:
createtime timestamp default current_timestamp,
updatetime timestamp default current_timestamp on update current_timestamp
此时更新一下数据:
4)生产环境:
1、delete from xxx
AUTO_INCREMENT = 3
2、新数据进来,自增长不是从1开始,其他表数据很可能关联不上,所以要考虑当场的业务场景解决
5)ENGINE = InnoDB AUTO_INCREMENT DEFAULT CHARSET = latin1
字符集(https://blog.****.net/minwang593/article/details/16941279)
查看mysql默认字符集
show variables like '%set%';
查看数据库“mysql”的字符集:
show create database mysql;
跟默认的字符集一致。
查看表的字符集:
进入该表下的数据库,use mysql;
show create table hbinzdata;
该表的字符集是latin1,该表的字段插入不了中文的内容;
insert into hbinzdata (name,age) values ('岑志强',28);
因此需要修改该表的字符集:
(1)create table HBinzdata(
id int AUTO_INCREMENT primary key,
name varchar(100),
age int,
createtime timestamp default current_timestamp,
createuser varchar(100),
updatetime timestamp default current_timestamp on update current_timestamp,
updateuser varchar(100)
)ENGINE=InnoDB DEFAULT CHARSET=utf8
(2)insert into hbinzdata (name,age) values ('岑志强',28);
6)复制表
create table test select name,age from HBinzdata;----既复制表结构又复制数据
create table test1 select name,age from HBinzdata where 1<>1;----只复制表结构
7)向表内新增一个字段(默认在最后一个字段后新增)
alter table hbinzdata add address varchar(512);
向表内新增一个字段(在某一个字段后)
alter table hbinzdata add address varchar(512) after age;
9)删除这个字段
alter table hbinzdata drop address ;