首页 > 数据库 >MySQL最简安装 - 开发人员用

MySQL最简安装 - 开发人员用

时间:2022-12-05 09:44:06浏览次数:60  
标签:opt 最简 开发人员 INTO MySQL zbt mysql mysqldata root

搭建开发用的单机、单实例mysql数据库,基于mysql5.7.39。

一、规划

1 目录规划

mysql配置文件 - /etc/my.cnf
mysql软件目录 - /opt/zbt/mysql5.7.39
mysql数据目录 - /opt/zbt/mysqldata

2 用户规划

使用zbt:zbt用户启动、关闭和运维数据库,不创建OS级别的服务

二、安装

mysql-5.7.39-el7-x86_64.tar.gz,可以到这个位置下载
https://downloads.mysql.com/archives/community/
上传到/opt/zbt,解压缩,改名为mysql5.7.39,保证/opt/zbt/mysql5.7.39下直接出现bin等一系列mysql软件目录

root用户修改主配置文件,有则直接修改,没有则创建改文件
这是唯一用到root用户的地方

vim /etc/my.cnf
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/opt/zbt/mysql5.7.39
datadir=/opt/zbt/mysqldata
socket=/opt/zbt/mysqldata/mysql.sock
log-error=/opt/zbt/mysqldata/mysql.err
pid-file=/opt/zbt/mysqldata/mysql.pid

#character config
character_set_server=utf8mb4

三、创建数据库实例

初始化(一次性)

cd /opt/zbt/mysql5.7.39/bin
./mysqld --defaults-file=/etc/my.cnf --initialize

查找初始的root口令:

cat /opt/zbt/mysqldata/mysql.err | grep "A temporary password is generated" 

启动数据库:

./mysqld_safe --defaults-file=/etc/my.cnf &

登录数据库并修改默认口令:

./mysql -uroot -p'找到的口令' -S /opt/zbt/mysqldata/mysql.sock
alter user "root"@"localhost" IDENTIFIED BY "passw0rd";
use mysql;
select host, user, password_expired, account_locked from user;
得到如下结果:
+-----------+---------------+------------------+----------------+
| host      | user          | password_expired | account_locked |
+-----------+---------------+------------------+----------------+
| localhost | root          | N                | N              |
| localhost | mysql.session | N                | Y              |
| localhost | mysql.sys     | N                | Y              |
+-----------+---------------+------------------+----------------+
这时唯一可用的root,其host为localhost,即表示只有在本机,才能使用这个账户,无法远程连mysql的时候使用root
不考虑了远程登录的安全,可以酌情改为:
update user set host = '%' where user = 'root';
FLUSH PRIVILEGES;

参考 - 关闭数据库:

ps -ef | grep "mysqld --defaults-file=/etc/my.cnf" | grep -v grep | awk '{print $2;}' | xargs kill

四、创建数据库对象

1 创建数据库和用户

创建一个用户、一个数据库,并将该数据库授权给该用户访问

./mysql -uroot -p'passw0rd' -S /opt/zbt/mysqldata/mysql.sock
CREATE DATABASE devdb01;
CREATE USER 'user1'@'%' IDENTIFIED BY 'passw0rd';
grant all on devdb01.* to 'user1'@'%';
FLUSH PRIVILEGES;

创建普通用户并赋权后,后面开发中,就可以都使用user1来操作数据,不需要再使用root。

2 创建测试业务表和数据
--建表测试
./mysql -uuser1 -p'passw0rd' -S /opt/zbt/mysqldata/mysql.sock
create table table1(id int(18), name varchar(25));
insert into table1(id, name) values(1234, "王子英");
commit;
select id, name from table1;
drop table table1;
3 创建正式的业务表和数据

--department表

CREATE TABLE department(
dptid int PRIMARY KEY auto_increment,
dptname VARCHAR(20) NOT NULL
);

--employee表

CREATE TABLE employee(
empid int PRIMARY KEY auto_increment,
empname VARCHAR(10) NOT NULL,
phone VARCHAR(11),
departmentid int,
address VARCHAR(50),
CONSTRAINT fk_dptid FOREIGN KEY(departmentid) REFERENCES department(dptid)
);

--插入数据

INSERT INTO department VALUES (1, '客服部');
INSERT INTO department VALUES (2, '财务部');
INSERT INTO department VALUES (3, '后勤部');
INSERT INTO employee VALUES (1, '李华', '13737445685', 1, '武汉市洪山区光谷大道288号');
INSERT INTO employee VALUES (2, '张建国', '18725489687', 3, '北京市朝阳区安贞路127号');
INSERT INTO employee VALUES (3, '周晓', '13985647124', 2, '昆明市五华区滇缅大道');
INSERT INTO employee VALUES (4, '李莉', '15896582415', 1, '武汉市汉阳区人民中路瑞典小镇');
INSERT INTO employee VALUES (5, '张晓红', '13865486874', 3, '');
commit;

标签:opt,最简,开发人员,INTO,MySQL,zbt,mysql,mysqldata,root
From: https://www.cnblogs.com/bmwhero/p/16951501.html

相关文章

  • mysql报错This function has none of DETERMINISTIC. NO SOL or READS SOL DATA...
    是因为存储过程/存储函数在创建时与开启慢查询日志冲突了解决冲突:临时解决:开启log_bin_trust_function_creatorsshowvariableslike'%log_bin_trust_function_cr......
  • mysql盲注
    盲注是在没有回显的情况下使用的注入方式,根据盲注方式的不同分为布尔盲注和时间盲注一、布尔盲注布尔盲注前提条件是存在注入点并且条件成功和失败页面特征不一致,基于布......
  • MySQL和SQLserver中group by的区别
    https://blog.csdn.net/weixin_48720080/article/details/126289174力扣中做了一道题,groupby可以在mysql中用,不能在mysqlserver中用,因为groupby后面没有select中的字段......
  • 忘记mysql本地root的登录密码该怎么办??
    解决过程:1、编辑/etc/my.cnf在[mysqld]配置部分添加一行skip-grant-tables2、保存后重启mysql[root@localhostetc]#servicemysqldrestartShuttingdownMySQL.......
  • MySQL MHA
    一、MHA概述MHA(MasterHighAvailability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。MHA的出现就是解决MySQL单点故障的问题。MySQL故障切换过程中,MHA能做......
  • Mysql 权限操作
    --使用mysql库,查询host和用户名usemysql;selecthost,userFROMuser--创建一个用户(这样创建默认是%,表示任何ip都可以连接)createuser'zhang3(这里填写用户名)'IDEN......
  • MySQL 存储过程浅谈
    一、存储过程定义​存储过程(StoredProcedure):一组为了完成特定功能的SQL语句集,存储在数据库中,经过一次编译后不需要再次编译。二、存储过程特点1、可以完成复杂的判断和......
  • MySQL 高级SQL语句
    一、高级SQL语句(进阶查询)先准备2个表一个location表:  一个store_info表:  1.1selectselect,显示表格中一个或数个字段的所有数据记录。    1.2dis......
  • Mysql主从复制,读写分离
    一、Mysql主从复制概述在企业中,业务数据量通常都比较大,单台Mysql在安全性,高可用性和高并发方面都无法满足实际需求,因此可以通过主从复制的方式来同步数据,再通过读写分离来提......
  • MySQL数据库 事务
    一、事务的概念事务是一种机制、一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么......