修改MySQL密码:MySQLadmin -u root password “123456”
或者登陆到MySQL修改密码
[root@cong11 ~]# mysql -uroot -p 密码
mysql> set password for 'root'@'localhost'=password('123456');
登陆mysql
[root@cong11 ~]# mysql -uroot -p123456
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
Mysql的错误日志文件(error_log)
在mysql数据库中,错误日志功能是默认开启的。默认情况下,错误日志存储在mysql数据库的数据目录中。
错误日志信息可以自己进行配置的,错误日志所记录的信息是可以通过log-error参数来定义的,其中log-error是定义是否启用错误日志的功能和错误日志的存储位置,默认情况下错误日志大概记录以下几个方面的信息:服务器启动和关闭过程中的信息(未必是错误信息,如mysql如何启动InnoDB的表空间文件的、如何初始化自己的存储引擎的等等)、服务器运行过程中的错误信息、在从服务器上启动服务器进程时产生的信息。
查看mysql错误日志的定义信息
mysql> show global variables like '%log_error%';
其中
log_error定义为错误日志文件路径。
log_error_verbosity:
The MySQL error log has received some attention in MySQL 5.7, with a new setting called log_error_verbosity。There are three possible values, as documented in the manual:
Verbosity Value |
Message Types Logged |
1 |
Errors only |
2 |
Errors and warnings |
3 |
Errors,warnings, and notes (default) |
更改错误日志位置可以使用log-error来设置形式如下
#vi /etc/my.cnf
log-error = /data/mysql/log/mysqld.log
查看mysql错误日志:可以使用tail或grep、cat等命令查看。
为了方便维护需要,有时候会希望将错误日志中的内容做备份并重新开始记录,这时候
就可以利用MySQL 的FLUSH LOGS 命令来告诉MySQL 备份旧日志文件并生成新的日志文件。备份文件名以“.old”结尾。
删除错误日志:
在mysql5.5.7之前:数据库管理员可以删除很长时间之前的错误日志,以保证mysql服务器上的硬盘空间。mysql数据库中,可以使用mysqladmin命令开启新的错误日志。mysqladmin命令的语法如下:mysqladmin –u root –p flush-logs也可以登录mysql数据库中使用FLUSH LOGS语句来开启新的错误日志。
在mysql5.5.7之后:服务器将关闭此项功能。只能使用重命名原来的错误日志文件,手动冲洗日志创建一个新的:方式如下:
mysql 数据库操作
查看数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
1:information_schema 这个数据库保存了MySQL服务器所有数据库的信息。如数据库名,数据库名,数据库的表,表栏的数据类型,访问权限等。['skimə]
2:performance_schema这是MySQL5.5新增的一个性能优化的引擎:命名PERFORMANCE_SCHEMA,主要用于收集数据库服务器性能参数。服务器性能参数。MySQL用户是不能创建存储引擎为PERFORMANCE_SCHEMA的表。
3:MySQL库的系统库,里面保存有账户信息,权限信息等。
4:mysql5.7增加sys系统数据库,sys数据库里面包含了一系列的存储过程、自定义函数以及视图来帮助我们快速的了解系统的元数据信息,元数据是关于数据信息的数据,如数据库名或表名,列的数据类型,或访问权限等。
以行的方式显示
mysql>show databases \G
在shell中查看
mysql -e后面直接跟sql语句,这种方式一般是在shell脚本中用到
[root@cong11 ~]# mysql -e 'show databases' -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
创建数据库
语法
create databases 数据库名;
创建数据库注意事项
1、在文件系统中,MySQL的数据存储区以目录方式表示MySQL数据库。因此,上面命令中的数据库名字必须与操作系统的约束的目录名字一致。例如不允许文件和目录名中有\,/,:,*,?,”,<,>,|这些特殊符号,在MySQL数据库名字中这些字母会被自动删除。
2、数据库的名字不能超过64个字符,包含特殊字符的名字或者是全部由数字或保留字组成的名字必须用反引号``括起来。
3、数据库不能重名
创建数据库
查看数据库
查看数据库目录
我们可以去目录下查看新创建的数据库目录
选择要操作的数据库
我们需要使用哪个数据库,就用use进行选择,后面的操作默认都是在被选择的数据库中进行操作。
查看自己在所处的位置
mysql > select database();
在命令行选择默认的数据库
我们也可以在命令行直接选择我们需要进入的数据库
删除数据库
命令:
移动数据库目录
上面删除数据库的方法,不安全,删除完了,无法恢复,在工作中我们可以移动数据库目录到别的地方,防止删除数据库想要恢复。
[root@cong11 ~]# mysql -uroot -p123456
使用IF EXISTS 子句以避免删除不存在的数据库时出现的MySQL错误信息 exists [ɪɡˈzɪst]
存在则删除 if exists
不存在则创建 if not exists
关于表的操作
创建表create:
语法:create table 表名(字段名 类型,字段名,类型 ....);
注意:必须到你所在库中建表。
其中id字段(列)定义为整数类型,也就是说id字段的值为整数,name字段定义为字符类型,也就是说name字段的值只能输入字符型数据。
查看表相关信息
注意:到所在库中查看表中信息
查看表结构
使用desc命令来查看表的结构
查看创建表执行的命令
删除表
禁止预读表信息
没有禁止前转换数据库会有提示信息
解决这个问题可以在登陆MySQL的时候加-A
这样use mysql 就没有提示信息了
MySQL数据类型
数据类型的作用:用来约束录入数据的格式。
mysql的常用数据类型包括整数类型,浮点型,日期和时间类型,字符串类型,enum枚举类型等。
数值类型:
日期和时间类型:
字符串类型:
char和varchar区别
char类型:
CHAR(M)定义的列的长度为固定的,M取值可以为0~255之间
当保存CHAR值时,一次性分配指定长度的存储空间,使用空格字符填充剩余空间。当检索到CHAR值时,尾部的空格被删除掉。
优点:
char定长字符存储,效率较高,比如手机号11位很适合
缺点:
定长长度的字符串比较浪费空间的
Varchar类型:
VARCHAR(M)定义的列的长度为可变长字符串,M取值可以为0~65535之间。
VARCHAR存储变长数据,保存时只保存需要的字符数,另加一个字节来记录长度(如果列声明的长度超过255,则使用两个字节)。
如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么"+1"呢?这一个字节用于保存实际使用了多大的长度。
优点:
varchar相对char来讲更省空间
缺点:
在存数据时,效率低点
总结:从空间上考虑,用varchar合适;从效率上考虑,用char合适。
枚举类型:
枚举类型字段的值,必须从预先定义好的字符串集合中选取。
ENUM(value1, value2,value3,...)
ENUM(枚举):只能取一个,用于互斥。例如性别字段只能是男人或女人。
下面我们创建一个学生信息表,包括学号、姓名、性别、年龄、电话号、和住址字段每个字段要有注释描述。
desc:查看表结构
修改表名称 alter
语法:alter table 表名 rename 新表名;
修改db01库中stu_info表名为student_info
修改表中的字段类型
语法:alter table 表名 modiry 要修改的字段名要修改的类型;
查看student_info表结构
修改字段name的varchar(20)字段类型为varchar(30)
修改表中的字段类型和字段名称
语法:alter table 表名 change 原字段名 新字段名 新字段类型;
注:change和modify的区别:change队列重命名和更改类型,必须给定旧的名称、旧数据类型和新的列名称、数据类型。modify可以改变列的类型,此时不需要重命名(不需给定新的列名称)
在表中添加字段:
语法:alter table 表名 add字段名 字段类型;
enum #枚举类型,比如性别,只能男女选择,是男非女,是女非男
在表中指定位置添加字段
first:在第一列添加第一个字段
在phone_number后面添加一个字段class字段
after:在某一个字段后面加一个字段
删除表中字段
语法:alter table 表名 drop 字段名;
drop:删除字段