学习笔记【centOS7,mysql,xshell,vbox】

2018-06-23  本文已影响0人  旧灵魂curiosity

1.VMware Workstations 14 安装与配置教程

官方下载地址:https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html

VMware进去总是卡住,内存太大,改用virtualbox,轻便。

虚拟机的CentOS镜像推荐使用minimal版本
注意: 虚拟机网络要开启桥接,这样才能获取到需要的ip

$ vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

图片中的no改为yes
然后输入下方的命令,注意网络要开启桥接。


image.png

改为桥接之后再执行一次service---
然后把下图命令挨个执行一遍


image.png

操作完成之后可以看到下图的inet


image.png

打开xshell,把刚才的inet输入进去,添加之后输入用户名和密码就可以和v box连接起来,可以很方便的使用复制和粘贴功能。



centos 7安装 mysql

一、卸载系统自带的相关

首先检查系统中是否存在使用rpm安装的mysql或者mariadb,如果有需要先删除后再编译安装。

1.rpm -qa | grep mysql #检查是否安装了mysql
2.rpm -qa | grep mariadb #检查是否安装了mariadb
3.rpm -e xxx  #一般使用此命令即可卸载成功
(4.rpm -e --nodeps xxx #卸载不成功时使用此命令强制卸载)

二、安装MySQL

  1. $ wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
  2. $ yum -y install mysql57-community-release-el7-10.noarch.rpm
  3. $ yum -y install mysql-community-server

三、进入MySQL

1.生成初始密码

$ grep "password" /var/log/mysqld.log

2.登录mysql

$ mysql -uroot -p
$ enter your password: 上面获取的初始密码

3.修改Mysql的root用户密码

$ ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
// 若报错
$ set global validate_password_policy=0;
$ set global validate_password_length=6;
$ ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码’;

相关问题

问题:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
解决:
启动mysql服务

$ service mysqld start

3.问题:系统开机自启MySQL
解决:

systemctl enable mysqld

mysql常用命令行:

1、登录mysql

本地:

 mysql -u root -p

回车后输入密码; 也可以p后不加空格,直接加密码。回车就登录了

远程:

mysql -hxx.xx.xx.xx -u -pxxx

2、查看数据库:

 mysql>show databases;
image

3、连接数据库:

mysql> use db_name;
image.png

4、查看数据表:

mysql> show tables;
image

5.创建表;

创建表的语法:
create table 表名(
  字段名1 数据类型(宽度/大小) 约束 ,
  字段名2 数据类型(宽度/大小) 约束 ,
  ...
  字段名n 数据类型(宽度/大小) 约束
  );
  注:约束可以省略,注意每一个字段创建语句后是已逗号结束,最后一个可以省略。

 create table MyClass(
id int(4) not null primary key auto_increment,
name char(20) not null,
sex int(4) not null default '0',
degree double(16,2)
);
image.png

6.查看表结构

语法: desc 表名 ;


image.png

1,增加一条记录到person表

语法:

insert into 表名(字段1,字段2,...) values(值1,值2,...);

insert into 表名 values(值1,值2,...);

当看到Query OK, 1 row affected(已完成,1列改变)说明插入成功,其他错误提示,请检查sql语句。

2,增加多条记录到person表

语法: insert into 表名 values(),(),(),()....;

[图片上传失败...(image-4ec20b-1530156918957)]

当看到这些信息,说明增加记录完毕。

3,查询person表中的记录

语法: select * from 表名; 或 select 字段1,字段2,字段3 from 表名;

[图片上传失败...(image-c8d35e-1530156918957)]

4,修改person表中记录(修改二毛的年龄)

语法: update 表名 set 修改条件 where 依据条件 ;

注:一定要有where依据条件,否则所有记录都被修改成相同的,切记。

然后,我们用查询语句查询表中所有记录,我会发现二毛的年龄被修改成17

5, 删除person表中记录(删除小毛的记录)

语法: delete from 表名 where 依据条件 ;

然后,我们用查询表中所有记录,会发现小毛那条记录不见了。

后记

如果在执行sql语句时,出现错误提示,请对照自己的sql语句中字母或标点的编写是否有问题。(双引号或单引号都可以)。

如果一开始就报错误,请检查是否有test这个数据库。查看命令语法

在编写sql中,有的地方必须要使用分号结束。检查语句没问题还报错,看看是否用了分号作为结束标志。(登录时不需要分号)

7.查询:select * from table_name where xxx and xxx;

image

6、当前选择的数据库:select database();

image

7、查询mysql版本:select version();

8、当前时间:select now();或select current_timestamp();

9、打印年月日:SELECT DAY/MONTH/YEAR(CURRENT_DATE);

 ![image](https://img.haomeiwen.com/i7503725/e46dbfe33f12176b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

10、打印字符:SELECT "I'am danny.yao";

image

11、查看表结构:describe <表名>;

12、当前所有连接的详细情况:show full processlist;(没有full,只显示前100个连接)

13、查看状态:show status like '%下面变量%';

Aborted_clients 由于客户没有正确关闭连接已经死掉,已经放弃的连接数量。
Aborted_connects 尝试已经失败的MySQL服务器的连接的次数。
Connections 试图连接MySQL服务器的次数。
Created_tmp_tables 当执行语句时,已经被创造了的隐含临时表的数量。
Delayed_insert_threads 正在使用的延迟插入处理器线程的数量。
Delayed_writes 用INSERT DELAYED写入的行数。
Delayed_errors 用INSERT DELAYED写入的发生某些错误(可能重复键值)的行数。
Flush_commands 执行FLUSH命令的次数。
Handler_delete 请求从一张表中删除行的次数。
Handler_read_first 请求读入表中第一行的次数。
Handler_read_key 请求数字基于键读行。
Handler_read_next 请求读入基于一个键的一行的次数。
Handler_read_rnd 请求读入基于一个固定位置的一行的次数。
Handler_update 请求更新表中一行的次数。
Handler_write 请求向表中插入一行的次数。
Key_blocks_used 用于关键字缓存的块的数量。
Key_read_requests 请求从缓存读入一个键值的次数。
Key_reads 从磁盘物理读入一个键值的次数。
Key_write_requests 请求将一个关键字块写入缓存次数。
Key_writes 将一个键值块物理写入磁盘的次数。
Max_used_connections 同时使用的连接的最大数目。
Not_flushed_key_blocks 在键缓存中已经改变但是还没被清空到磁盘上的键块。
Not_flushed_delayed_rows 在INSERT DELAY队列中等待写入的行的数量。
Open_tables 打开表的数量。
Open_files 打开文件的数量。
Open_streams 打开流的数量(主要用于日志记载)
Opened_tables 已经打开的表的数量。
Questions 发往服务器的查询的数量。
Slow_queries 要花超过long_query_time时间的查询数量。
Threads_connected 当前打开的连接的数量。
Threads_running 不在睡眠的线程数量。
Uptime 服务器工作了多少秒。

14、看表注释,字段注释;

show create table table_name;
show full columns from table_name;
show table status;

MySQL中delimiter的作用
原创 2011年11月18日 15:17:07 阅读 124
在MySQL中,delimiter就是告诉解释器以哪一种符号结束命令。

MySQL中,默认的语句结束符号为分号(;)

但是刚才我在写存储过程的时候,发现,写分号并不能编译通过,于是查找资料发现,了delimiter这个词的作用。

举例来说:

DELIMITER //
CREATE TRIGGER trigger_bbs BEFORE INSERT ON feedback FOR EACH ROW BEGIN

SET new.floors = CONCAT((SELECT VIEW FROM bbs WHERE id = new.f_id)+1,'楼');

END //

在这段代码中,如果说我们把delimiter这个词去掉的话,那么,在语句中我们得慎用分号(;)
DELIMITER //
上面这句话的意思就是告诉解释器,要把双斜线(“//”)作为语句结束符号,当遇到(“//”)符号的时候才开始执行。
use mysql #打开mysql数据库

将host设置为%表示任何ip都能连接mysql,当然您也可以将host指定为某个ip

update user set host='%' where user='root' and host='localhost';
flush privileges; #刷新权限表,使配置生效
然后我们就能远程连接我们的mysql了。

上一篇下一篇

猜你喜欢

热点阅读