MySQL系列(二)—基础篇

433 阅读3分钟

MySQL单机安装

  • 操作系统:CentOS 7
  • MySQL:5.6

MySQL的卸载

查看MySQL软件

rpm -qa|grep mysql 
yum repolist all | grep mysql

卸载MySQL

yum remove -y mysql mysql-libs mysql-common #卸载mysql
rm -rf /var/lib/mysql #删除mysql下的数据文件
rm /etc/my.cnf #删除mysql配置文件
rm /etc/my.cnf #删除mysql配置文件

查看是否还有 MySQL 软件,有的话继续删除。

安装MySQL

#下载rpm文件
wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
#执行rpm源文件
rpm -ivh mysql-community-release-el6-5.noarch.rpm
#执行安装文件
yum install mysql-community-server

启动MySQL

systemctl start mysqld

设置root用户密码

例如:为 root 账号设置密码为 root :

/usr/bin/mysqladmin -u root password 'root'
#没有密码 有原来的密码则加
/usr/bin/mysqladmin -u root -p '123' password 'root'

登录MySQL

登录命令

mysql -uroot -proot

命令说明

  • -u:指定数据库用户名
  • -p:指定数据库密码,记住-u和登录密码之间没有空格

配置MySQL

vim /etc/my.cnf

修改内容如下:

[mysqld]
# MySQL设置大小写不敏感:默认:区分表名的大小写,不区分列名的大小写
# 0:大小写敏感 1:大小写不敏感
lower_case_table_names=1
# 默认字符集
character-set-server=utf8

MySQL远程连接授权

授权命令

grant 权限 on 数据库对象 to 用户

示例

授予root用户对所有数据库对象的全部操作权限:

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
FLUSH PRIVILEGES;--刷新权限

命令说明

  • ALL PRIVILEGES :表示授予所有的权限,此处可以指定具体的授权权限。
  • *.* :表示所有库中的所有表
  • 'root'@'%' : myuser是数据库的用户名,%表示是任意ip地址,可以指定具体ip地址。
  • IDENTIFIED BY 'mypassword' :mypassword是数据库的密码。

关闭linux的防火墙

systemctl stop firewalld(默认)
systemctl disable firewalld.service(设置开启不启动)

客户端远程访问

利用navicat可以远程访问MySQL

注:如果连接不上,可以按以下步骤排错
1、MySQL是否正常启动
[root@localhost ~]# ps -ef | grep mysql
2、查看防火墙是否关闭
 systemctl status firewalld
3、查看root权限为所有ip都可以访问
 show grants for root;
4、服务器与客户端是否可以ping通
5、客户端是否可以telnet到服务器端
telnet 192.168.239.129 3306
6、Navicat是否正确安装

DDL语句

数据库操作:database

创建数据库

create database 数据库名;
create database 数据库名 character set 字符集;

查看数据库

#查看数据库服务器中的所有的数据库:
show databases;
#查看某个数据库的定义的信息:
show create database 数据库名;

删除数据库(慎用)

drop database 数据库名称;

其他数据库操作命令

#切换数据库:
use 数据库名;
#查看正在使用的数据库:
select database();

表操作:table

字段类型

常用的类型有:

  • 数字型:int
  • 浮点型:double
  • 字符型:varchar(可变长字符串)
  • 日期类型:date(只有年月日,没有时分秒) datetime(年月日,时分秒)
  • boolean类型:不支持,一般使用tinyint替代(值为0和1)

1618500905(1).jpg

1618501203(1).jpg

创建表

create table 表名( 
字段名 类型(长度) 约束, 字段名 类型(长度) 约束 
);

单表约束:

  • 主键约束:primary key
  • 唯一约束:unique
  • 非空约束:not null 注意: 主键约束 = 唯一约束 + 非空约束

查看表

#查看数据库中的所有表:
show tables;
#查看表结构:
desc 表名;

删除表

drop table 表名;

修改表

alter table 表名 add 列名 类型(长度) 约束; --修改表添加列.
alter table 表名 modify 列名 类型(长度) 约束; --修改表修改列的类型长度及约束.
alter table 表名 change 旧列名 新列名 类型(长度) 约束; --修改表修改列名.
alter table 表名 drop 列名; --修改表删除列.
rename table 表名 to 新表名; --修改表名
alter table 表名 character set 字符集; --修改表的字符集