一、MySQL
开源关系数据库。
在验证拷贝mysql数据库数据目录是否可用时随便简单记录了安装注意事项(关于其它安装方式可参考官方手册),拷贝完整的mysql数据是可以正常运行的(注my.cnf配置)
手册: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)、下载
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
Comments NOTHING