linux安装mysql5.7.30 及配置多实例
1. 安装包下载,准备环境
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz# 创建以下目录,(目录位置自定义,无强制) 软件路径: /opt/mysql/ 数据路径: /data/mysql/data/ 二进制路径:/data/mysql/binlog/ 通讯路径: /tmp/mysql/ 用来在数据库启动的时候在该目录生成sock文件 chown -R mysql.mysql /opt/mysql chown -R mysql.mysql /tmp/mysql chown -R mysql.mysql /data/*
2. 解压二进制包,配置环境变量
tar zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.30-linux-glibc2.12-x86_64/* /opt/mysql/ vim /etc/profile export PATH=/opt/mysql/bin:$PATH source /etc/profile 3. 数据库初始化 mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql --datadir=/data/mysql/data 参数: --initialize-insecure 不使用mysql的密码策略,无临时密码 --user 指定用户 --basedir 指定软件路径 --datadir 指定数据路径 初始化操作会在指定的数据目录下生成mysql系统的依赖文件
4. 配置文件
vim /etc/my.cnf # mysql会自动加载该目录下的配置文件 [mysqld] basedir=/opt/mysql datadir=/data/mysql/data server_id=10 user=mysql log_bin=/data/mysql/binlog/mysql-bin # mysql-bin是指定的二进制文件前缀 binlog_format=row # 配置binlog以RBR模式记录 socket=/tmp/mysql/mysql.sock # 会在数据库启动的时候在该目录生成sock文件,关闭数据库后即消失 [client] socket=/tmp/mysql/mysql.sock 4.1 mysql启动时都会去哪些路径找配置文件呢? # 可以在mysqld的帮助信息中找到相关说明,如下[ ~]# mysqld --help --verbose |grep my.cnf/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 注: 默认情况下,MySQL启动时,会依次读取以上配置文件,如果有重复选项,会以最后一个文件设置的为准。 但是,如果启动时加入了--defaults-file=xxxx时,以上的所有文件都不会读取.
5. 数据库启动
1. 启动方式一使用mysql软件目录下support-files/mysql.server 即可启停,就是有些麻烦/opt/mysql/support-files/mysql.server start/stop2. 启动方式二使用mysql软件目录/bin/mysql_safe来启动启动:mysql_safe &停止:mysqladmin -uroot -p shutdown3. 启动方式三使用mysql软件目录/bin/mysqld来启动启动:/opt/mysql/bin/mysqld --defaults-file=/etc/my.cnf 该方式会把启动日志输出到屏幕,适用于数据库异常时,连日志都写入不了的场景。4. mysql的维护模式mysql_safe --skip-grant-tables --skip-networking &5. 使用sys-v方式。cp support-files/mysql.server /etc/init.d/mysqldd启动/停止: service mysqldd start/stop 或者 /etc/init.d/mysqldd start/stop6. 使用systemctl方式。cat /etc/systemd/system/mysqld.service 创建个mysqld.service文件 [Unit] Description=MySQL Server Documentation=man:mysqld(8) Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html After=network.target After=syslog.target [Install] WantedBy=multi-user.target [Service] User=mysql Group=mysql LimitNOFILE = 10000 ExecStart=/opt/mysql/bin/mysqld --defaults-file=/etc/my.cnf # 修改这里,其它都是固定的 配置完成即可使用:systemctl start/stop mysqld 5.1 各启动方式对比 1. sys-v方式只能实现简单的start, stop, restart操作,不能在命令行添加参数 该方式的调用过程: 这个脚本会调用软件目录下的bin/mysql_safe, 然后会调用bin/mysqld来完成。 2. systemctl方式也只能实现简单的启停操作。 该方式的调用过程: 直接使用软件目录下bin/mysqld + 指定配置文件来启动的。 3. 维护模式的启停 mysql_safe --skip-grant-tables --skip-networking & 可使用命令行参数的形式启动,能处理特殊模式的启动操作 该方式虽然也会加载/etc/my.cnf配置文件,但是如果命令行中有和配置文件中同样的参数,会以命令行的为准。 补充:1,2,3都会去加载/etc/my.cnf配置文件的内容,但是3更灵活,能在命令行中加入需要的参数来改变启动模式 6. 初始化时使用的是无密码初始化 数据库启动后可使用mysql提供的mysqladmin来设置管理员密码或修改管理员密码(root) /opt/mysql/bin/mysqladmin -uroot -p password 密码 当然加了环境变量后可直接使用: mysqladmin -uroot -p password 密码mysqladmin命令设置密码和修改密码命令一样,只不过用来修改密码时第一次需要数据老密码。
7. 管理员密码忘记了?
跳过授权表,禁用远程模式启动后,使用原来的grant或alter命令来修改密码肯定不行,因为我们启动的模式说白了就是不加载授权表,肯定也不能对授权表进行操作了。 此时可使用flush privileges;来重新加载授权表, 然后再使用grant或alter命令来设定密码即可。授权表即mysql库中的user表
相关推荐
CoderToy 2020-11-16
bianruifeng 2020-11-16
云中舞步 2020-11-12
敏敏张 2020-11-11
暗夜之城 2020-11-11
好记忆也需烂 2020-11-11
Coder技术文摘 2020-09-29
huacuilaifa 2020-10-29
Gexrior 2020-10-22
lpfvip00 2020-10-07
云中舞步 2020-09-11
康慧欣 2020-09-10
emmm00 2020-11-17
世樹 2020-11-11
tufeiax 2020-09-03
疯狂老司机 2020-09-08
王艺强 2020-11-17
ribavnu 2020-11-16