一、安装介绍
1.1、下载镜像安装
$ docker pull mysql:5.7.34
1、配置文件
将全部的配置文件和关联的文件夹统一放到/opt/docker-mysql中
$ mkdir -p /opt/docker-mysql/conf.d
增加并修改配置文件config-file.cnf
内容如下,设置表名不区分大小写; linux下默认是区分的,windows下默认不区分
[mysqld]# 表名不区分大小写lower_case_table_names=1#server-id=1datadir=/var/lib/mysql#socket=/var/lib/mysql/mysqlx.sock#symbolic-links=0# sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid
2、启动
增加数据文件夹
$ mkdir -p /opt/docker-mysql/var/lib/mysql
启动,设置默认密码 123456,TZ 设置容器的默认时区
$ docker run --name mysql \--restart=always \-p 3306:3306 \-v /opt/docker-mysql/conf.d:/etc/mysql/conf.d \-v /opt/docker-mysql/var/lib/mysql:/var/lib/mysql \-e MYSQL_ROOT_PASSWORD=123456 \-e TZ=Asia/Shanghai \-d mysql:5.7.34
1.2、解压安装:
CSDN原链接
下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
1、解压
tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar

再移动并重命名一下
mv mysql-5.7.26-linux-glibc2.12-x86_64 /usr/local/mysql
2、创建mysql用户组和用户并修改权限
groupadd mysqluseradd -r -g mysql mysql
创建数据目录并赋予权限
mkdir -p /data/mysql #创建目录chown mysql:mysql -R /data/mysql #赋予权限
配置my.cnf
vim /etc/my.cnf
[mysqld]bind-address=0.0.0.0port=3306user=mysqlbasedir=/usr/local/mysqldatadir=/data/mysqlsocket=/tmp/mysql.socklog-error=/data/mysql/mysql.errpid-file=/data/mysql/mysql.pid#character configcharacter_set_server=utf8mb4symbolic-links=0explicit_defaults_for_timestamp=true
3、初始化数据库
进入mysql的bin目录
cd /usr/local/mysql/bin/
初始化
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
初始话有问题可以执行yum install -y libaio
查看密码
cat /data/mysql/mysql.err
4、启动mysql,并更改root 密码
先将mysql.server放置到/etc/init.d/mysql中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
启动!!!
service mysql startps -ef|grep mysql
到这里说明mysql已经安装成功了!!
下面修改密码
首先登录mysql,前面的那个是随机生成的。
./mysql -u root -p #bin目录下
再执行下面三步操作,然后重新登录。
SET PASSWORD = PASSWORD('123456');ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;FLUSH PRIVILEGES;
远程链接还需要执行下面三个命令(先登录数据库)
use mysql #访问mysql库update user set host = '%' where user = 'root'; #使root能再任何host访问FLUSH PRIVILEGES; #刷新
如果不希望每次都到bin目录下使用mysql命令则执行以下命令
ln -s /usr/local/mysql/bin/mysql /usr/bin
二、常用命令
1、查看死锁,解除死锁的方式
1.查看下在锁的事务SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;2.杀死进程id(就是上面命令的trx_mysql_thread_id列)kill 线程ID
