目录
目录
1、 创建新的用户组和新的用户,用来管理mysql,提高安全性
2、上传mysql程序包mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz,修改名称
4、 给mysql用户授权能够访问/home下的mysql-5.7.29文件夹
一、需要准备的软件
1、mysql
官网下载地址:https://dev.mysql.com/downloads/mysql/
默认是显示最新版版本,点击Archives选择历史版本,我这里用到到是5.7.29版本
选择对应版本下载好后上传到服务器
2、libaio库
在安装过程中初始化数据库时,经常会报error while loading shared libraries: libaio.so.1。
这是由于缺少libaio库,下载地址:
二、下面开始部署安装mysql
1、 创建新的用户组和新的用户,用来管理mysql,提高安全性
groupadd mysql
添加mysql用户 ,并制定组为mysql,/sbin/nologin意思是用户不允许登录
注意:一定要创建一个非root的用户来安装,mysql不允许以root用户运行
2、上传mysql程序包mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz,修改名称
cd /home
tar -zxvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.29-linux-glibc2.12-x86_64 mysql-5.7.29
3、创建数据存储目录,日志目录和mysqld.log日志文件,并设置读写权限
创建data和log目录
mkdir /home/mysql-5.7.29/{data,logs}
创建日志文件
touch /home/mysql-5.7.29/logs/mysqld.log
设置data和log目录的读写权限,-R表示整个目录授权
chmod 777 -R {data,logs}
4、 给mysql用户授权能够访问/home下的mysql-5.7.29文件夹
chown -R mysql.mysql /home/mysql-5.7.29/
这样才能使下一步初始化加载数据库的路径是自己自定义选择的路径,配置文件内容如下:
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/home/mysql-5.7.29
datadir=/home/mysql-5.7.29/data
socket=/home/mysql-5.7.29/mysql.sock
# 开启ip绑定
#bind-address = 0.0.0.0
log_timestamps = SYSTEM
open_files_limit=30000
max_connections=3000
#控制其通信缓冲区的最大长度
max_allowed_packet=256M
# #设置忽略大小写(简单来说就是sql语句是否严格),默认库名表名保存为小写, 不区分大小写
lower_case_table_names = 1
#
# # 开启慢查询
#slow_query_log=on
#slow_query_log_file=/home/mysql-5.7.29/log/slow-query.log
#
[mysqld_safe]
log-error=/home/mysql-5.7.29/logs/mysqld.log
pid-file=/home/mysql-5.7.29/data/mysqld.pid
# #指定客户端连接mysql时的socket通信文件路径
[client]
socket=/home/mysql-5.7.29/mysql.sock
default-character-set=utf8
6、安装libaio库
rpm -ivh libaio-0.3.112-1.el8.x86_64.rpm
7、初始化数据库
安装目录下执行下列命令:
./bin/mysqld --initialize --user=mysql --basedir=/home/mysql-5.7.29/ --datadir=/home/mysql-5.7.29/data
此时会生成一个临时密码 如:CcPcnyCW%3Go【记住此临时密码,下面会用上】,每个人安装部署时产生的临时密码不一致,以初始化数据库打印的临时密码为准
注意:如果需要重新初始化配置,需要将data目录下的文件清空,否则初始化会失败
8、添加至开机启动
在mysql5.7.29的目录下执行下列语句,把启动脚本放到开机初始化目录
cp ./support-files/mysql.server /etc/init.d/mysqld
设置开机启动,在mysql-5.7.29的目录下执行下列语句(按个人需求选择加或不加)
chkconfig --add mysqld
9、修改mysqld,使用vim /etc/init.d/mysqld 命令
修改以下代码部分,具体以实际路径为准
10、启动mysql服务和修改mysql初始化密码
service mysqld start
启动的发现报错了,这时候查看3306端口发现端口是被正常监听的,但是停止服务又提示pid不存在,这时候先kill一下,然后再次启动发现OK了,这个啥情况我也不太清楚
./bin/mysql -uroot -p -S /home/mysql-5.7.29/mysql.sock
mysql.sock在mysql启动后会自动生成,生成的路径就是/etc/my.cnf配置的路径,root密码为:CcPcnyCW%3Go
三、设置MySQL用户密码
1、设置root密码
alter user root@localhost identified by '123456';
root@localhost是对应MySQL的用户,123456是需要修改的密码。
2、use选择mysql
use mysql
3、设置局域网ip均能访问
update user set user.Host='%' where user.User='root';
设置用户root的访问地址不受限制
4、执行生效指令
flush privileges;
这里建议设置完成后不要马上退出mysql,先用可视化工具连接测试一下,否则可能连接不上,但是用户名和密码又没错,如果没退出,你还能再次输入通过指令修改root的密码,所以保证连接成功后,在输入exit进行退出。
最后通过可视化工具连接测试成功,自此mysql5.7.29在Linux环境上安装部署完成~