目录
概念
数据库的基本概念
关系型数据库
非关系型数据库
MySQL
商业版与社区版
示例
初始化MySQL
添加系统服务
SQL:结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
导入已经编译过的MySQL安装包,使用tar命令解压
[root@localhost ~]# tar zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
安装所需依赖yum -y install gcc libaio
创建程序用户,关闭防火墙和内核安全机制
[root@localhost ~]# useradd -M -s /sbin/nologin mysql [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# setenforce 0
因为是解压即用的软件包,所以可以直接移动到方便使用的位置,并重命名为mysql
[root@localhost ~]# mv mysql-5.7.28-linux-glibc2.12-x86_64 /usr/local/mysql
cd进入移动的目录内,创建数据目录,用于存放MySQL生成的数据,创建程序用户并修改该目录的属主和属组为mysql程序用户
最后创建软链接便于在终端中使用mysql命令
[root@localhost ~]# cd /usr/local/mysql/ [root@localhost mysql]# mkdir data [root@localhost mysql]# useradd -M -s /sbin/nologin mysql [root@localhost mysql]# chown -R mysql:mysql data/ [root@localhost mysql]# ln -s /usr/local/mysql/bin/* /usr/local/bin/
cd进入bin/目录下,使用mysqld脚本初始化
在初始化完成后的最后一行,最后一行会显示出临时密码,利用临时密码登录MySQL,把密码改为自己的密码。
[root@localhost bin]# ./mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --initialize 2024-07-22T02:29:46.322987Z 1 [Note] A temporary password is generated for root@localhost: B;jb1+:.aah6 # 临时密码
cd到mysql安装目录下的data目录,初始化完成后,刚刚新建的data目录内也生成了文件和数据库
打开MySQL的配置文件,删除在安装系统时MariaDB数据库生成的全部内容,添加MySQL数据库对应内容。
[root@localhost data]# 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 port=3306 skip-name-resolve max_connections=2048 character-set-server=utf8 default-storage-engine=INNODB lower_case_table_names=1 [mysqld_safe] log-error=/usr/local/mysql/data/error.log
优化参数不加也可以正常使用mysql
优化参数 | 说明 |
[mysqld_safe] | mysql启动时要执行的操作 |
socket | 告诉本地客户端用哪个socket连接服务端 |
bind-address | 绑定监听地址,0.0.0.0表示所有地址 |
port | 指定端口号 |
skip-name-resole | 跳过与客户端的域名解析,增加连接效率 |
max_connections | 允许最大连接数 |
character-set-server | 指定服务端使用的字符集 |
default-storage-engine | 创建新表时默认使用的存储引擎 |
lower_case_table_names | 表名不区分大小写 |
拷贝mysql提供的服务文件到对应位置
[root@localhost init.d]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
创建systemd守护进程能够管理mysql的服务文件,最后重载systemd
[root@localhost init.d]# vim /lib/systemd/system/mysqld.service [Unit] Description=mysqld After=network.target [Service] Type=forking ExecStart=/etc/init.d/mysqld start ExecReload=/etc/init.d/mysqld restart ExecStop=/etc/init.d/mysqld stop PrivateTmp=true # 把临时数据放到私有的临时目录里 [Install] WantedBy=multi-user.target [root@localhost ~]# systemctl daemon-reload
然后利用临时密码修改mysql登录的密码
[root@localhost ~]# mysql -uroot -p password:这里输入之前生成的临时密码,回车 进入mysql界面 mysql> set password='123456'; # 修改密码 mysql> show databases; # 显示当前所有数据库 +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec)
进入名为mysql的数据库,列出所有表
再使用select命令测试查询mysql数据库中user表的所有内容,包括所有列的详细信息(\G 是以垂直方式显示,代替默认的水平方式)
mysql> use mysql; mysql> show tables; mysql> select * from user\G