Mysql数据库初体验

MySQL 的二进制安装

1:基础环境准备

[root@www ~]# yum -y install gcc vim wget net-tools lrzsz libaio

备注:

 libaio是linux版本的aio库,aio指的是异步io

2:创建运行用户

[root@www ~]# useradd -M -s /sbin/nologin mysql

3:关闭防火墙

[root@www ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

[root@www ~]# setenforce 0

[root@www ~]# systemctl disable firewalld

[root@www ~]# systemctl stop firewalld

4:二进制安装

[root@www ~]# tar zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

[root@www ~]# mv mysql-5.7.28-linux-glibc2.12-x86_64 /usr/local/mysql

[root@www ~]# mkdir /usr/local/mysql/data

[root@www ~]# chown -R mysql.mysql /usr/local/mysql/data

[root@www ~]# cd /usr/local/mysql/bin

[root@www ~]# ./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize

5:设定配置文件

[root@www ~]# vim /etc/my.cnf

[client]

socket=/usr/local/mysql/data/mysql.sock

[mysqld]

socket=/usr/local/mysql/data/mysql.sock

bind-address = 0.0.0.0

skip-name-resolve

port = 3306

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

max_connections=2048

character-set-server=utf8

default-storage-engine=INNODB

lower_case_table_names=1

max_allowed_packet=16M

[mysqld_safe]

log-error=/usr/local/mysql/data/error.log

#pid-file=/var/run/mariadb/mariadb.pid

备注:

skip-name-resolve :跳过名称解析

所谓反向解析是这样的:
mysql接收到连接请求后,获得的是客户端的ip,为了更好的匹配mysql.user里的权限记录(某些是用hostname定义的)。
如果mysql服务器设置了dns服务器,并且客户端ip在dns上并没有相应的hostname,那么这个过程很慢,导致连接等待。
 添加skip-name-resolve以后就跳过着一个过程了

[root@www ~]# echo "export PATH=$PATH:/usr/local/mysql/bin">> /etc/profile

[root@www ~]# . /etc/profile

6:配置 systemctl 方式启动

[root@www ~]# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld

[root@www ~]# chmod +x /etc/rc.d/init.d/mysqld

[root@www ~]# vim /lib/systemd/system/mysqld.service

[Unit]

Description=mysqld

After=network.target

[Service]

Type=forking

ExecStart=/etc/rc.d/init.d/mysqld start

ExecReload=/etc/rc.d/init.d/mysqld restart

ExecStop=/etc/rc.d/init.d/mysqld stop

PrivateTmp=true

[Install]

WantedBy=multi-user.target

备注:

种类

解释

Type=oneshot

这一选项适用于只执行一项任务、随后立即退出的服务。可能需要同时设置 RemainAfterExit=yes 使得 systemd 在服务进程退出之后仍然认为服务处于激活状态。

Type=notify

与 Type=simple 相同,但约定服务会在就绪后向 systemd 发送一个信号。这一通知的实现由 libsystemd-daemon.so 提供。

Type=dbus

若以此方式启动,当指定的 BusName 出现在DBus系统总线上时,systemd认为服务就绪。

Type=idle

systemd会等待所有任务处理完成后,才开始执行 idle 类型的单元。其他行为与 Type=simple 类似。

Type=forking

systemd认为当该服务进程fork,且父进程退出后服务启动成功。对于常规的守护进程(daemon),除非你确定此启动方式无法满足需求,使用此类型启动即可。使用此启动类型应同时指定 PIDFile=,以便 systemd 能够跟踪服务的主进程

Type=simple

systemd认为该服务将立即启动。服务进程不会 fork 。如果该服务要启动其他服务,不要使用此类型启动,除非该服务是socket 激活型。

备注:

在linux中fork函数是非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。

当一个进程调用fork()函数后,系统先给新的进程分配资源,然后把原来的进程的所有值都复制到新的新进程中。这样就把新的进程创建了出来, 在fork函数执行完毕后,如果创建新进程成功,则出现两个进程,一个是子进程,一个是父进程。当子进程创建好后,这个父进程就退出,也代表该服务创建成功。

[root@www ~]# systemctl daemon-reload

[root@www ~]# systemctl enable mysqld

[root@www ~]# systemctl start mysqld

[root@www~]# netstat -tunlp|grep 3306

7:访问 MySQL 数据库

[root@www ~]# mysql -u root -p

mysql>set password =password('pwd123');

  • 16
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值