mysql安装记录

烂柯 发布于 2023-05-18 116 次阅读


一、MySQL

开源关系数据库。

在验证拷贝mysql数据库数据目录是否可用时随便简单记录了安装注意事项(关于其它安装方式可参考官方手册),拷贝完整的mysql数据是可以正常运行的(注my.cnf配置)

官网:https://www.mysql.com/

手册:https://dev.mysql.com/doc/refman/8.0/en/

社区下载地址:https://dev.mysql.com/downloads/mysql/

二、安装

个人比较常用的安装方式有 msi(Windows)、yum(CentOS)、apt(Ubuntu),基本都是按特定流程一把梭,一定、千万要注意数据存储位置和日志存储位置,以下是三种安装方式大致流程及注意点。

1.msi(Windows)

Windows界面化安装,(安装过程中选自定义安装就可以设置安装位置,以前的版本选自定安装要选中对应要安装的服务才能设置安装路径)狂点下一步然后收工下班。

:windows默认区分表名大小写

2.yum和apt

大致流程一致,添加源->下载安装->设置开机自启

yum安装手册

yum存储库rpm包下载地址yum存储库rpm包加速地址

#1、下载yum存储包
# curl -O https://repo.mysql.com//mysql80-community-release-el7-11.noarch.rpm
curl -O https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-8.0-community-el7-x86_64/mysql80-community-release-el7-11.noarch.rpm
#2、安装yum存储库,
sudo yum install mysql80-community-release-el7-8.noarch.rpm
#3、查看mysql发布系列
yum repolist all | grep mysql
#4、安装mysql服务
sudo yum install mysql-community-server
#5、开机启动命令
systemctl start mysqld &&systemctl enable mysqld

apt安装手册

: a.安装社区服务都是 mysql-community-server

​ b.Linux上面安装默认区分大小写,配置大小写及数据存储路径,需配置/etc/my.cnf、/etc/mysql/my.cnf

​ c.查看服务 systemctl status mysqld 、systemctl status mysql

​ d.查看初始密码:grep 'password' /var/log/mysqld.log 、grep 'password' /var/log/mysql/error.log

​ e.Unix上启动mysqld服务器推荐 mysqld_safe

3、二进制安装

二进制归档文件安装手册:https://dev.mysql.com/doc/refman/8.0/en/binary-installation.html

1)、下载

mysql 社区版下载地址

2)、初始化

归档文件安装需要先初始化然后再运行,Windows执行初始化时可以添加--console参数控制台输出。

#windows
#bin\mysqld -I --console
bin\mysqld --initialize --console 
#linux
#bin/mysqld --defaults-file=my.cnf --user=mysql -I
bin/mysqld --defaults-file=my.cnf --user=mysql --initialize

: a.确保初始化命令正确,如果命令有误,window可能提示IO没有权限,linux不会有输出。

b.linux归档文件一定要选择Linux-Generic中的,不然就是提示IO没有权限。

3)、设置启动

window服务启动

#1、关闭服务
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqladmin"  -u root shutdown

#2、安装为服务
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --install
#"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --install MySQL --defaults-file=C:\my-opts.cnf

#3、启动服务
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --install-manual
#SC start mysql

#4、删除服务
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --remove
#SC delete mysql

Linux服务启动

通过systemd管理服务

#1、编辑服务
vi /etc/systemd/system/mysqld.service

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network-online.target
Wants=network-online.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql

Type=notify

# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0

# Execute pre and post scripts as root
PermissionsStartOnly=true

# Needed to create system tables
ExecStartPre=/usr/bin/mysqld_pre_systemd

# Start main service
ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS

# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql

# Sets open_files_limit
LimitNOFILE = 10000

Restart=on-failure

RestartPreventExitStatus=1

# Set enviroment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1

PrivateTmp=false

#2、设置自动启动服务
systemctl daemon-reload && systemctl start mysqld && systemctl enable mysqld

4、docker安装

docker安装注意磁盘映射

docker run \
--name mysql \
-d -p 3306:3306 \
-e TZ=Asia/Shanghai \
--restart always  \
-v /mnt/dockerDataRoot/mysql/log:/var/log/mysql \
-v /mnt/dockerDataRoot/mysql/data:/var/lib/mysql \
-v /mnt/dockerDataRoot/mysql/conf/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf \
-e MYSQL_ROOT_PASSWORD=rpyZn123@Da3j \
mysql \
# --character-set-server=utf8mb4 \
# --collation-server=utf8mb4_bin \
# --lower-case-table-names=1

三、my.cnf 配置示例

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
#basedir=E:/software/mysql-test/mysql-8
# 设置mysql数据库的数据的存放目录
#datadir=E:/software/mysql-test/mysql-8-data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
collation-server=utf8mb4_bin
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
authentication_policy=mysql_native_password
# 设置table名称不区分大小写
lower_case_table_names=1
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

四、用户密码

#获取临时密码
sudo grep 'temporary password' /var/log/mysqld.log
#修改密码
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

#创建用户并允许远程连接
CREATE USER 'root'@'%' IDENTIFIED BY 'MyNewPass4!';
grant all privileges on *.* to root@'%' with grant option;
flush privileges;

五、数据库操作

#创建数据库
CREATE DATABASE `test-database` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_bin';

#备份指定数据库
mysqldump -u username -p <database name或-all-databases> [tables 为空表示整个库] > BackupName.sql

#还原数据库
mysql -u root -p [database name] < BackupName.sql
烂柯

最后更新于 2023-12-26