YUM安装
单节点安装
1、安装mysql5.7:
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpmyum localinstall mysql80-community-release-el7-1.noarch.rpmyum repolist all | grep mysqlyum repolist enabled | grep mysqlyum install yum-utils -yyum-config-manager --disable mysql80-communityyum-config-manager --enable mysql57-communityyum install mysql-community-server -ysystemctl start mysqldsystemctl enable mysqld
2、查看密码
在 MySQL 服务器初始启动时,如果服务器的数据目录为空,则会发生以下情况:
- MySQL 服务器已初始化。
- 在数据目录中生成SSL证书和密钥文件。
- 该validate_password插件安装并启用。
- 将创建一个超级用户 帐户
'root'@'localhost'。并会设置超级用户的密码,将其存储在错误日志文件中。要显示它,请使用以下命令
$ grep 'temporary password' /var/log/mysqld.log2019-11-21T06:26:36.414908Z 1 [Note] A temporary password is generated for root@localhost: -*mN,epg4N)F
3、取消密码复杂度
编辑 /etc/my.cnf配置文件, 在 [mysqld]配置块儿中添加如下内容
plugin-load=validate_password.sovalidate-password=OFF
保存退出后,重启服务。
4、修改密码
通过上面日志中的临时密码登录并为超级用户帐户设置自定义密码:
mysqladmin -u root -p'-*mN,epg4N)F' password '1q2w3e4r'
注意: MySQL的 validate_password 插件默认安装。这将要求密码包含至少一个大写字母,一个小写字母,一个数字和一个特殊字符,并且密码总长度至少为8个字符。
如果不行的话,则先修改配置文件设置不使用密码,登陆进去之后再修改密码。
mysql -u root -pmysql> update mysql.user set authentication_string=PASSWORD('123456') where user='root';
退出mysql,注释掉/etc/my.cnf中的 skip-grant-tables=true 这一行后,保存并重启mysql,使用新密码登录即可
5、不使用密码
修改 /etc/my.cnf 文件,添加如下内容,之后重启服务
skip-grant-tables=true
6、配置默认编码为 utf8
MySQL 默认为 latin1, 一般修改为 UTF-8
shell> vi /etc/my.cnf[mysqld]# 在myslqd下添加如下键值对character_set_server=utf8init_connect='SET NAMES utf8'
重启 MySQL 服务,使配置生效
systemctl restart mysqld.service
查看字符集
mysql> SHOW VARIABLES LIKE 'character%';+--------------------------+----------------------------+| Variable_name | Value |+--------------------------+----------------------------+| character_set_client | utf8 || character_set_connection | utf8 || character_set_database | utf8 || character_set_filesystem | binary || character_set_results | utf8 || character_set_server | utf8 || character_set_system | utf8 || character_sets_dir | /usr/share/mysql/charsets/ |+--------------------------+----------------------------+8 rows in set (0.00 sec
主备安装
Docker安装
下载镜像:
docker pull mysql
运行容器:
docker run -d -p 3306:3306 \-v /data/docker/mysql/conf:/etc/mysql \-v /data/docker/mysql/logs:/var/log/mysql \-v /data/docker/mysql/data:/var/lib/mysql \-e MYSQL_ROOT_PASSWORD=123456 \--name mysql mysql
命令参数:
-p 3306:3306:将容器的3306端口映射到主机的3306端口-v /data/docker/mysql/conf:/etc/mysql:将主机当前目录下的 conf 挂载到容器的 /etc/mysql-v /data/docker/mysql/logs:/var/log/mysql:将主机当前目录下的 logs 目录挂载到容器的 /var/log/mysql-v /data/docker/mysql/data:/var/lib/mysql:将主机当前目录下的 data 目录挂载到容器的 /var/lib/mysql-e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码
查看容器启动情况:
docker ps
防火墙开启3306端口
firewall-cmd --add-port=3306/tcpfirewall-cmd --zone=public --add-port=3306/tcp --permanent
/data/docker/mysql/conf下创建my.cnf
[client]default-character-set=utf8mb4[mysqld]character-set-client-handshake = FALSEcharacter-set-server = utf8mb4collation-server = utf8mb4_unicode_ci[mysql]default-character-set=utf8mb4
重新启动容器
docker restart mysql
进入容器:
docker exec -it mysql bash
在宿主机上登陆mysql:
#登录mysqlmysql -h192.168.56.100 -p3306 -uroot -p123456#添加远程登录用户CREATE USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY '123456';GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';#查看编码showvariables like "%char%";flush privileges;
Docker-compose安装
docker-compose.yml配置文件如下:
version: '3.1'services:db:image: mysqlcontainer_name: mysqlrestart: alwaysenvironment:MYSQL_ROOT_PASSWORD: 123456command:--default-authentication-plugin=mysql_native_password--character-set-server=utf8mb4--collation-server=utf8mb4_general_ci--explicit_defaults_for_timestamp=true--lower_case_table_names=1ports:- 3306:3306volumes:- /data/docker/mysql/conf:/etc/mysql- /data/docker/mysql/logs:/var/log/mysql- /data/docker/mysql/data:/var/lib/mysql
