MySQL深入学习——第一章 MySQL基础总结笔记

这篇博客详细介绍了MySQL的基础知识,包括在CentOS 7上的安装、防火墙设置、权限管理和数据类型的介绍。在安装部分,涵盖了单实例和多实例的安装步骤,以及如何配置防火墙以允许远程访问。在权限管理章节,讲解了MySQL的用户权限、涉及的数据库表以及如何授权和查看权限。此外,还提到了MySQL中的数据类型,特别是Int类型和JSON类型的特性及操作。

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

全球访问量最大的20家网站,他们分别使用了什么数据库呢,绝大多数使用mysql,有两个完整live.com和bing使用的是mssql,并不是他们使用不了mysql,而是他要支持自己的数据库。

在国外可能挺多使用mssql或者oracle的,但是在过能,在去IOE的大背景下,包括银行在内的很多传统公司慢慢都在像mysql转型,不过其中有个老大不掉的公司,中国电力,依然使用oracle,在十年的时间仅仅在oracle的使用上,中国电力就支出390几个亿,平均一年30,40个亿,它有钱,如果你所在公司随随便便也能拿个几百个亿,那你也用oracle吧

一、MySQL安装

在第一期,课程是在windows安装的mysql,但第二期,同学们都有linux基础了,所以,第二期会在linux上使用,没有使用过linux的同学先去看下第一期peter老师的视频。

1、准备工作

  Linux 使用的版本是centos 7,为方便起见,先把防火墙关闭,配置好网络,在安装部分,会分成两部分讲,首先讲单实例安装,也就是一台服务器上就装一个mysql,接下来就多实例安装,在一个服务器上安装2个甚至多个mysql。

2、单实例安装

安装需要的依赖

yum install -y libaio

2.1、解压mysql到/usr/local目录:

首先复制文件到/usr/local/下面,然后解压

cp /soft/mysql-5.7.9-linux-glibc2.5-x86_64.tar.gz  /usr/local/

shell> cd /usr/local
shell> tar -zxvf mysql-5.7.9-linux-glibc2.5-x86_64.tar.gz

2.1、添加用户与组

shell> groupadd mysql

shell> useradd -r -g mysql mysql

// 建立一个mysql的软连接

shell> ln -s /usr/local/mysql-5.7.9-linux-glibc2.5-x86_64 mysql

shell> cd mysql

shell> mkdir mysql-files

shell> chmod 770 mysql-files

2.3、改变一个目录的所有人属性并同时改变改目录下所有文件的属性 

shell> chown -R mysql .

// 改变文件的群组 

shell> chgrp -R mysql .

// 密码:ry4Plm(Oy*jq(注意第一次安装出现失败后,继续从该命令开始安装)

shell> bin/mysqld --initialize --user=mysql 

shell> bin/mysql_ssl_rsa_setup

shell> chown -R root .

// 在mysql创建一个data目录,用于存放数据文件。执行以下命令

shell> chown -R mysql data mysql-files

2.4、启动服务

出现错误,原因是/etc/my.cnf文件没有权限

shell> bin/mysqld_safe --user=mysql &

# Next command is optional

shell> cp support-files/mysql.server /etc/init.d/mysql.server

2.5、设置开机启动项:

查看启动项命令:chkconfig --list

mysql>FLUSH PRIVILEGES;     #刷新权限

 

配置开启启动

chkconfig mysql.server on

chkconfig --list

2.6、配置环境变量: 

查看命令:vi /etc/profile(添加下面内容)

export PATH=/usr/local/mysql/bin:$PATH

2.7、登陆设置密码

在mysql系统外,使用mysqladmin(进入到/var/local/mysql/bin)。

登陆:mysql -uroot -p'ry4Plm(Oy*jq'

修改密码:set password = 'root';

2.8、授权访问

在 Linux 下为了安全,默认是不允许 MySQL 服务器本机以外的机器访问 MySQL 数据库服务的,因此需要重新授权 root 账号。方便其他机器远程访问 MySQL 服务器,MySQL 命令如下:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root1234%'

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

flush privileges;  

2.9、测试查询

这样就可以允许从其他机器用 root 账号远程登录 MySQL 服务器了,可以用下面的 MySQL 命令来验证一下:

mysql> use mysql; 

mysql> select host,user from user; 

启动的时候可能会报错

这是因为mysql启动的时候需要配置文件,而在安装centos的时候,哪怕是mini版本都会有个默认的配置在/etc目录中:

/usr/local/mysql/bin/mysqld --verbose --help |grep -A 1 'Default options'

Default options are read from the following files in the given order:

/etc/my.cnf  /etc/mysql/my.cnf  /usr/local/mysql/etc/my.cnf ~/.my.cnf

 

Mysql启动的时候会以上面所述的顺序加载配置文件

注意:如果报错,先重命名my.cnf文件

3、多实例安装

以前一些很low的方法是,解压两个mysql,分别放到不同文件夹,其实在mysql中已经考虑到了多实例安装的情况。也有相应的脚本命令的支持。

现在要求装两个mysql 一个3307,3308

3.1、解压到/usr/local/ 下面, 更名mysql

cp /soft/mysql-5.7.9-linux-glibc2.5-x86_64.tar.gz  /usr/local/

tar xzvf mysql-5.7.9-linux-glibc2.5-x86_64.tar.gz

mv /usr/local/mysql-5.7.9-linux-glibc2.5-x86_64 /usr/local/mysql

3.2、新建 /etc/my.cnf 配置如下

vi /etc/my.cnf

[mysqld]
sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"

[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
log = /var/log/mysqld_multi.log

[mysqld1]
server-id = 11
socket = /tmp/mysql.sock1
port = 3307
datadir = /data1
user = mysql
performance_schema = off
innodb_buffer_pool_size = 32M
skip_name_resolve = 1
log_error = error.log
pid-file = /data1/mysql.pid1

[mysqld2]
server-id = 12
socket = /tmp/mysql.sock2
port = 3308
datadir = /data2
user = mysql
performance_schema = off
innodb_buffer_pool_size = 32M
skip_name_resolve = 1
log_error = error.log
pid-file = /data2/mysql.pid2

3改变文件夹权限

创建mysql用户和用户组:

groupadd mysql

useradd mysql -g mysql

chown -R mysql:mysql mysql/

chmod -R 755 mysql/

4)建立一个mysql的软连接

shell> ln -s /usr/local/mysql-5.7.9-linux-glibc2.5-x86_64 mysql

shell> cd mysql

shell> mkdir mysql-files

shell> chmod 770 mysql-files

注意:安装依赖包(非必须)

yum -y install make gcc-c++ cmake bison-devel ncurses-devellibaio libaio-devel

5)创建2个数据目录并赋权限

mkdir /data1

mkdir /data2

chown mysql.mysql /data1

chown mysql.mysql /data2

6)初始化各个实例:

初始化完后会在日志中生成密码,记得保存,一会要用。

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data1

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data2

7)开启各实例的SSL连接(可选)

/usr/local/mysql/bin/mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/data1

/usr/local/mysql/bin/mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/data2

 

8添加环境变量

a、在文件最后面添加内容:

vi /etc/profile

## SETUP MYSQL’S PATH

export MYSQL_HOME=/usr/local/mysql

export PATH=${MYSQL_HOME}/bin:$PATH

b、  使修改的配置文件生效:

source /etc/profile

9)配置开机启动

复制多实例脚本到服务管理目录下

cp /usr/local/mysql/support-files/mysqld_multi.server /etc/init.d/mysqld_multid

或者:mv /data/soft/mysql/support-files/mysql.server /etc/init.d/mysqld_multid

给予脚本可执行权限:

chmod +x /etc/init.d/mysqld_multid

加入service服务管理:

chkconfig --add mysqld_multid

显示服务列表:

chkconfig --list

如果3,4,5都是开的就说明是自启设置成功。没有的话,就执行

chkconfig --level 345 mysqld_multid on

chkconfig mysqld_multid on(实现不了)

10)查看状态:

/etc/init.d/mysqld_multid report

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值