linux下的mysql安装方式

一.安装

1.yum或dnf安装
安装
[root@node1 ~]# yum install -y mariadb-server    安装这个会自动将依赖补充 
开启服务
[root@node1 ~]# systemctl enable mariadb --now   表示现在自动启动服务可省略掉start启动步骤
配置密码方式
1.外部用户
MariaDB [(none)]> grant all privileges on *.* to "root"@"%" identified by '000000';  
外部用户进入服务器时使用root用户的密码可以通过此方式修改
此语句可进行权限的设置于 grant all privileges on *.* 处
grant all privilege 将指定的表和数据库的所有的权限进行赋予给特定用户
on *.* 在<数据库>.<数据表>中
2.localhost本地用户
2.1 sql语句修改
MariaDB [(none)]> grant all privileges on *.* to "root"@"localhost" identified by '000000';
与之前的外部用户密码语句不同处在于"root"@"<此处>"
2.2 命令修改分两种
2.2.1 mysqladmin
格式 mysqladmin -u <用户> -p <原密码> password <新密码>    -p在用户无密码时可省略
[root@node1 ~]# mysqladmin -uroot -p000000 password 123456
2.2.2 mysql_install_db 与 mysql_secure_installation
(1).mysql_install_db 用于二进制类的初始化 yum或dnf安装时会自动进行无需自行操作
(2).mysql_secure_installation 再次对mysql的配置
# 输入当前的 root 密码(直接按回车)
Enter current password for root (enter for none):
# 设置新的 root 密码
Set root password? [Y/n] Y
New password: password000000
Re-enter new password: password000000
# 删除匿名用户
Remove anonymous users? [Y/n] Y
# 禁止 root 用户远程登录
Disallow root login remotely? [Y/n] Y
# 删除测试数据库及其访问权限
Remove test database and access to it? [Y/n] Y
# 重新加载权限表
Reload privilege tables now? [Y/n] Y
2.二进制安装
[root@node1 ~]# tar -xzvf mysql-8.0.24-el7-x86_64.tar.gz -C /usr/local/
[root@node1 local]# mv mysql-8.0.24-el7-x86_64/ mysql
[root@node1 local]# cd mysql/
创建mysql运行用户
[root@node1 mysql]# groupadd mysql     
[root@node1 ~]# useradd mysql -g mysql -M -s /sbin/nologin
创建数据保存目录
[root@node1 local]# mkdir mysql/{data,logs}
添加入mysql组中使其能够被使用
[root@node1 local]# chown -R mysql:mysql /usr/local/mysql/
[root@node1 local]# cd mysql/
[root@node1 mysql]# ls
bin  data  docs  include  lib  LICENSE  logs  man  README  share  support-files
[root@node1 mysql]# vi /etc/my.cnf
[root@node1 mysql]# cat /etc/my.cnf
[mysqld]
!includedir /etc/my.cnf.d
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
character_set_server=utf8
init_connect='SET NAMES utf8'
log-error= /usr/local/mysql/logs/mysqld.log
pid-file=  /usr/local/mysql/data/node1.pid
explicit_defaults_for_timestamp=true
​
[root@node1 mysql]# ./bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --user=mysql --initialize
[root@node1 mysql]# cat logs/mysqld.log | grep password
2024-11-17T09:00:39.927771Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 8q1aoN=df/2   数据库生成的临时密码需要将其修改才能正常使用数据库
[root@node1 mysql]# cp -rf support-files/mysql.server /etc/init.d/mysql  将服务移动至初始化服务中方便启动和关闭
[root@node1 mysql]# systemctl start mysql
[root@node1 mysql]# mysql -uroot -p8q1aoN=df/2,
mysql> alter user 'root'@'localhost' identified by '000000';   重置密码后方可使用其他命令
Query OK, 0 rows affected (0.00 sec)
3.docker安装mysql

dockers配置官网mysql - Official Image | Docker Hub

安装docker这里我使用了我的脚本来安装
[root@node1 ~]# source Centos7_docker.sh 
docker pull mysql:<版本号>   选取对应版本
[root@node1 ~]# docker pull mysql:5.7

运行配置选项

docker run创建一个新的容器 , 同时运行这个容器
–name <容器名>启动容器的名字(可指定可不指定主要为了方便管理)
-d后台运行
-p 3306:3306将容器的 3306 (后面那个) 端口映射到主机的 3306 (前面那个) 端口
–restart unless-stopped容器重启策略
-v /mydata/mysql/log:/var/log/mysql将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql将mysql储存文件夹挂载到主机
-v /mydata/mysql/conf:/etc/mysql将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root设置 root 用户的密码为root
-e MYSQL_ALLOW_EMPTY_PASSWORD不使用密码
MYSQL_DATABASE=<数据库名>当启动镜像时自动建立指定数据库
MYSQL_USER用户名
MYSQL_PASSWORD密码名 指代非root用户
MYSQL_RANDOM_ROOT_PASSWORD为 root 用户生成随机初始密码(使用 )。生成的 root 密码将打印至stdout ()
MYSQL_ONETIME_PASSWORD首次登陆时mysql容器时将强制初始化寻求配置所有未设置的变量<5.6版本以上>
MYSQL_INITDB_SKIP_TZINFO是否跳过时区加载
[root@node1 ~]# docker run -d --name mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=true -p3306:3306 mysql:5.7 不设置密码
[root@node1 ~]# docker exec -it mysql /bin/bash
exit 为退出容器
在容器中输入mysql -uroot 进入容器密码可自行修改

二配置项

1.my.cnf配置文件的选项

[mysqld] 部分

配置选项描述
基本配置
basedirMySQL 安装目录
datadir数据文件存储目录
portMySQL 服务器监听的端口,默认是 3306
socketUnix socket 文件路径
pid-filePID 文件路径
日志配置
log_error错误日志文件路径
general_log_file通用查询日志文件路径
slow_query_log_file慢查询日志文件路径
slow_query_log是否启用慢查询日志
long_query_time慢查询的阈值,单位为秒
性能配置
innodb_buffer_pool_sizeInnoDB 缓冲池大小,用于缓存数据和索引
innodb_log_file_sizeInnoDB 日志文件大小
innodb_flush_log_at_trx_commit事务提交时的日志刷新策略
max_connections最大连接数
thread_cache_size线程缓存大小
query_cache_size查询缓存大小(注意:MySQL 8.0 及以上版本已移除查询缓存)
tmp_table_size内存临时表的最大大小
max_heap_table_size内存表的最大大小
安全配置
skip_networking是否禁用网络连接
bind-address绑定的IP地址
secure-file-priv限制导入导出文件的路径
sql_modeSQL 模式,控制 SQL 语句的行为
字符集和排序规则
character_set_server服务器默认字符集
collation_server服务器默认排序规则
character_set_database数据库默认字符集
collation_database数据库默认排序规则

[client] 部分

配置选项描述
基本配置
port客户端连接的端口
socketUnix socket 文件路径
default-character-set客户端默认字符集

[mysqldump] 部分

配置选项描述
基本配置
quick快速导出模式
extended-insert使用扩展插入语句
single-transaction使用事务来保证数据一致性

[mysql] 部分

配置选项描述
基本配置
no-auto-rehash禁用自动补全
auto-rehash启用自动补全
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值