mysql安装与基础

本文详细介绍了MySQL的安装、卸载步骤,包括查询服务进程、停止服务、删除文件、添加用户组和用户,以及使用tar.gz、rpm和系统初始化的方法。还涵盖了配置、权限管理、远程连接设置、防火墙规则和数据类型等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mysql安装卸载与基础知识

mysql卸载

#查询服务进程
ps -ef  | grep mysql
#停止服务
service mysqld stop
#杀死进程
kill pid
#查找相关文件/路径
find  / -name mysql
#删除相关文件/路径
rm -rf filename
#删除用户组
userdel mysql
groupdel mysql

tar.gz安装

准备好压缩包后,使用解压命令解压

tar -xzvf mysql*.tar.gz

mv mysql解压文件 /usr/local/mysql

检查mysql组和用户是否存

cat /etc/group|grep mysql

cat /etc/password|grep mysql

不存在,则添加

#添加用户组:
groupadd mysql

#添加用户:
useradd -r -g mysql mysql

更改mysql用户组、用户、权限

为保障mysql用户有足够的权限,我们需要将mysql目录下所有目录及文件夹的所属用户组和用户给到mysql:mysql,并让mysql用户具有相应的权限

# 更改用户组及用户:
 chown -R mysql:mysql /usr/local/mysql
 
#更改权限:
 chmod -R 755 /usr/local/mysql
 
#小知识:777代表具体权限,使用cl l可查看权限,rwx是三种权限,分别对应421

创建data目录

#进入mysql目录
cd /usr/local/mysql   

#创建data目录
mkdir data

在mysql目录下复制文件放到/etc/目录下

cp support-files/mysql.server /etc/init.d/mysqld

cp support-files/my-default.cnf /etc/my.cnf

编辑配置文件/etc/my.cnf

#如果该目录下没有my.cnf文件,则可以新建一个同名文件,并进行编辑。
vim /etc/my.cn
[mysqld]

  #character

  character-set-server=utf8

  collation-server=utf8_general_ci

  datadir=/usr/local/mysql/data

  port = 3306
  sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
  symbolic-links=0
  max_connections=600
  innodb_file_per_table=1
  lower_case_table_names=1

  [mysqld_safe]
  datadir=/usr/local/mysql/data
  log-error=/usr/local/mysql/data/error.log
  pid-file=/usr/local/mysql/data/mysql.pid
  user=mysql
  tmpdir=/tmp

初始化mysql(会给出,默认密码)

#进入mysql的bin目录:
cd /usr/local/mysql/bin

#进行初始化:   
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

在这里插入图片描述

添加软连接,并重启mysql服务

ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

service mysql restart

使用默认密码登录mysql修改密码(如果提示mysql目录或者文件不存在,可以尝试重启电脑)

mysql -uroot -p默认密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; 

rpm安装

mysql安装包rpm阿里镜像源

https://mirrors.aliyun.com/mysql/

缺失wget工具使用yum install wget下载安装

wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

rpm -ivh mysql57-community-release-el7-9.noarch.rpm

-i (install 安装软件包 )
-v (view 可视化)
-h ( hour 方便自己记忆 显示安装进度 )

执行完成后会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo

必须进入到 /etc/yum.repos.d/目录后再执行以下脚本(不执行好像也没发现影响)
cd /etc/yum.repos.d/

yum install mysql-server

systemctl start mysqld #启动MySQL

获取临时密钥

grep 'temporary password' /var/log/mysqld.log

登录修改密钥

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '@abcd123456'; 

查看初始密钥策略

mysql> SHOW VARIABLES LIKE'validate_password%';
#首先需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可:
set global validate_password_policy=LOW;
#当前密码长度为 8 ,修改密码长度为6 位的密码:
set global validate_password_length=6;
#然后就可以设置简单的密码了:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
#可以验证一下密码是否修改成功,输入quit或者exit退出mysql,再输入mysql -uroot -p,然后输入123456测试是否能够登录mysql。

修改用户权限让数据库可以远程连接

mysql> use mysql;
mysql> select Host, User from user;
mysql> update user set host ='%'   where user='root';
mysql> flush privileges;
mysql> quit;

配置mysql:
vi /etc/my.cnf
增加如下内容:

character-set-server=utf8
lower_case_table_names=0
slow_query_log=1
long_query_time=10.000000

重新启动Mysql服务:
systemctl restart mysqld
再登录MySQL:
mysql -u root -p

遇到密钥不匹配问题解决,更新现有mysql安装包的密钥

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

防火墙开放3306端口

防火墙开启3306端口

1、查看防火墙

systemctl status firewalld

2、查看3306端口状态

firewall-cmd --zone=public --query-port=3306/tcp

3、如果是no,表示关闭,打开3306端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent 

4、防火墙重载

firewall-cmd --reload

5、再次查看3306状态

firewall-cmd --zone=public --query-port=3306/tcp

6、查看防火墙状态

service iptables status  

7、查看已开启的端口

firewall-cmd --list-ports

问题:查看防火墙状态出现:

Unit iptables.service could not be found.

解决方案:

  1. 安装iptables-services
yum install iptables-services
  1. 启动iptables
systemctl enable iptables
systemctl start iptables

配置文件

配置文件在etc目录下

进入/etc,执行命令查找配置文件

ls -lrt | grep my.cnf

1)-l 表示开启长列表输出,打开了就会输出文件权限、引用计数、所有者、所属组、文件大小、修改日期和文件名称这些详细的信息。

2)-t 以时间排序,最新的文件会排在上面。

3)-r 表示反向排序、倒序输出。

4)-x 按列输出,横向排序。

5)-u 按照文件上次被访问的时间排序。

查看mysql进程

ps -ef | grep mysql

ps查看进程 -e显示所有进程 -f全格式 grep查找:

启动mysql

service mysqld start [stop] [restart] [status]

mysql语句分类

操作语句分为4类

DDL数据定义语言 建库建表

DML数据操作语言 对数据进行增删改操作

DQL数据查询语言 对数据进行查询

DCL数据控制语言 对用户的权限进行设置

数据库创建使用

create database xiaohuang;
use xiaohuang;
select database();#判断在哪个库
create database if not exists xiaohuang;#判断xiaohuang库是否存在,如果不存在则创建
create database xiaohuang default character set gbk;#创建数据库,并指定字符集【不指定字符集,默认配置文件中的字符集】 
show create database xiaohuang;#查看创建数据库信息(例如字符集)
show variables like ‘character%’;#查看当前mysql使用的字符集

在这里插入图片描述

mysql常见数据类型

主要掌握定点型、char/vachar/TEXT、时间型

定点型不丢数据精度,原来是是什么就存什么。

char固定长度,vachar可变长度【char比vachar查找方便,vachar存储方便】

<1>整数型

类型      大小      范围(有符号)               范围(无符号unsigned)    用途
TINYINT   1 字节    (-128,127)                (0,255)                 小整数值
SMALLINT  2 字节    (-32768,32767)            (0,65535)               大整数值
MEDIUMINT 3 字节    (-8388608,8388607)        (0,16777215)            大整数值
INT       4 字节    (-2147483648,2147483647)  (0,4294967295)          大整数值
BIGINT    8 字节     ()                       (0,2的64次方减1)        极大整数值

<2>浮点型

 FLOAT(m,d)  4 字节    单精度浮点型  备注:m代表总个数,d代表小数位个数
 DOUBLE(m,d) 8 字节    双精度浮点型  备注:m代表总个数,d代表小数位个数

<3>定点型

 DECIMAL(m,d)    依赖于M和D的值    备注:m代表总个数,d代表小数位个数

<4>字符串类型 

 类型          大小              用途
 CHAR          0-255字节         定长字符串
 VARCHAR       0-65535字节       变长字符串
 TINYTEXT      0-255字节         短文本字符串
 TEXT          0-65535字节       长文本数据
 MEDIUMTEXT    0-16777215字节    中等长度文本数据
 LONGTEXT      0-4294967295字节  极大文本数据

 char的优缺点:存取速度比varchar更快,但是比varchar更占用空间
 varchar的优缺点:比char省空间。但是存取速度没有char快

<5>时间型

 数据类型    字节数            格式                    备注
 date        3                yyyy-MM-dd              存储日期值
 time        3                HH:mm:ss                存储时分秒
 year        1                yyyy                    存储年
 datetime    8                yyyy-MM-dd HH:mm:ss     存储日期+时间
 timestamp   4                yyyy-MM-dd HH:mm:ss     存储日期+时间,可作时间戳
 
1字节=8位(bit)
1 1 1 1 1 1 1 1 

/G == ;&纵向旋转90度

型 字节数 格式 备注
date 3 yyyy-MM-dd 存储日期值
time 3 HH:mm:ss 存储时分秒
year 1 yyyy 存储年
datetime 8 yyyy-MM-dd HH:mm:ss 存储日期+时间
timestamp 4 yyyy-MM-dd HH:mm:ss 存储日期+时间,可作时间戳

1字节=8位(bit)
1 1 1 1 1 1 1 1


/G == ;&纵向旋转90度

/g == ;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值