MYSQL从零开始
前言
5年躺平运维工程师转型DBA之路
一、MYSQL简介
mysql是一个开源的关系型数据库管理系统,常用于web应用程序的后端数据存储。
特点:
管理数据的大型软件
易于使用和维护
保证数据安全与完整
多个server端连接支持
实现自定义schema(数据对象的合集)与约束
提供数据定义,数据操作等语言,实现增删改查
二、搭建
1.安装前准备
安装版本:推荐:5.7.22、8.0.20以后的双数GA版本。
获取mysql软件包
https://downloads.mysql.com/archives/community/
2.安装与部署
官方文档:https://dev.mysql.com/doc/refman/8.0/en/binary-installation.html
1.解压
[root@CSZJGLDB01 ~]# tar xf mysql-8.0.35-linux-glibc2.17-x86_64.tar.xz
2.软链接
3.编辑配置文件
[root@CSZJGLDB01 ~]# vim /etc/my.cnf
[client]
socket = /data/mysql/3306/data/mysql.sock
[mysqld]
basedir = /usr/local/mysql
datadir = /data/mysql/3306/data
user = mysql
port = 3306
socket = /data/mysql/3306/data/mysql.sock
log_error = /data/mysql/3306/data/mysql.err
log_timestamps = system
log-bin = mysql-bin
server-id = 1
4.创建用户
[root@CSZJGLDB01 ~]# useradd mysql
5.创建目录
[root@CSZJGLDB01 ~]# mkdir -p /data/mysql/3306/data
6.授权
[root@CSZJGLDB01 ~]# chown -R mysql.mysql /data
7.初始化数据库
[root@CSZJGLDB01 ~]# vi /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
[root@CSZJGLDB01 ~]# source /etc/profile
[root@CSZJGLDB01 ~]# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize
8.启动实例
[root@CSZJGLDB01 ~]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
9.登录实例
[root@CSZJGLDB01 ~]# grep password /data/mysql/3306/data/mysql.err
2024-03-21T13:43:11.484921+08:00 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Nea+#HA26eqD
[root@CSZJGLDB01 ~]#/usr/local/mysql/bin/mysql -uroot -S /data/mysql/3306/data/mysql.sock -p
10.修改密码
mysql>alter user user() identified by '123456';
3.服务管理
1.sysv init 脚本(Linux6)
[root@CSZJGLDB01 ~]#cd /usr/local/mysql
[root@CSZJGLDB01 ~]#cp support-files/mysql.server /etc/init.d/mysqld
linux7
[root@CSZJGLDB01 ~]#vi /usr/lib/systemd/system/mysqld.service
[unit]
Description=MySQL Server
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld –defaults-file=/etc/my.cnf
LimitNOFILE = 65536
LimitNPROC = 65536
2.启停命令
[root@CSZJGLDB01 mysql]# systemctl daemon-reload
[root@CSZJGLDB01 mysql]# systemctl stop mysqld
[root@CSZJGLDB01 mysql]# systemctl start mysqld
[root@CSZJGLDB01 mysql]# systemctl enable mysqld
mysqld.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig mysqld on
[root@CSZJGLDB01 mysql]# systemctl status mysqld
* mysqld.service - LSB: start and stop MySQL
Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled)
Active: active (exited) since Thu 2024-03-21 14:13:20 CST; 12s ago
Docs: man:systemd-sysv-generator(8)
Mar 21 14:13:20 CSZJGLDB01 systemd[1]: Starting LSB: start and stop MySQL...
Mar 21 14:13:20 CSZJGLDB01 mysqld[124661]: Starting MySQL SUCCESS!
Mar 21 14:13:20 CSZJGLDB01 systemd[1]: Started LSB: start and stop MySQL.
Mar 21 14:13:21 CSZJGLDB01 mysqld[124661]: 2024-03-21T06:13:21.024820Z mysqld_safe A mysqld process already exists
总结
过程中如果出现报错,多看日志,自行搜索,欢迎交流。