linux环境下安装mysq5.7
环境搭建
mysql安装目前有三种方式:bin包、源码、rpm包。
推荐使用bin包安装,本文就是采用bin包安装方式。
1、下载bin包
https://downloads.mysql.com/archives/community/
2、安装依赖库
shell> yum search libaio
shell> yum install libaio -y
3、创建数据库专用账号
# useradd -r -s /sbin/nologin mysql
4、清空系统中原有配置文件(mariadb的配置文件,/etc/my.cnf)
# rm -rf /etc/my.cnf
5、根目录下新建mysql文件夹,并将mysql安装文件上传到该文件夹,
在根目录下新家文件夹,名字为:mysql_3306,将安装文件解压,将解压之后的文件夹移动到mysql_3306中。
解压:
# tar -xf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz
将解压后的文件夹移动到根目录下mysql_3306
# mv mysql-5.7.33-linux-glibc2.12-x86_64 /mysql_3306
6、切换到mysql工作目录 /mysql_3306,创建一个mysql-files文件
# cd /mysql_3306
# mkdir mysql-files
7、更改mysql-files权限
# chown mysql:mysql mysql-files
# chmod 750 mysql-files
8、初始化数据库(可以实现数据库初始化,而且会产生一个随机的密码)
# bin/mysqld --initialize --user=mysql --basedir=/mysql_3306
运行完毕后,观察最后一行代码,保存root账号的密码,以备后期使用。
2021-04-07T14:21:32.015523Z 1 [Note] A temporary password is generated for root@localhost: I(wkg%_>n6+o
经验之谈:想查看mysql软件是否初始化成功,主要看mysql目录下有没有产生data文件夹且至少有一个mysql文件夹。
9、设置安全加密链接ssl,数据传输会采用加密的方式
# bin/mysql_ssl_rsa_setup --datadir=/mysql_3306/data
10、启动mysql数据库
将mysql.server 复制到/etc/init.d,并起一个别名
# cp support-files/mysql.server /etc/init.d/mysql_3306
注:默认情况下,glibc版本的数据库要求安装到/usr/local/mysql目录,其mysql.server脚本中对应的目录也是/usr/local/mysql,这会导致mysql无法启动,所以可以更改其basedir以及datadir两个变量
# vim /etc/init.d/mysql_3306
basedir=/mysql_3306
datadir=/mysql_3306/data
启动mysql数据库
# service mysql_3306 start
注:mysql启动不了,查看日志。
Starting MySQL.Logging to '/mysql_3306/data/mysqlserver.err'.
特别说明:档mysql启动成功后,其日志会自动写入到data数据目录的主机名称.err文件中,这个文件一定要多看,涉及mysql无法启动、启动报错,其详细原因99%在.err文件中可以找到问题所在。
后续配置
1、更改数据库管理员密码
方法1:
# bin/mysqladmin -uroot password '新密码' -p
Enter password:输入刚刚初始化产生的临时密码
用设置好的密码登录一下:
# bin/mysql -uroot -p
Enter password:输入刚刚设置的新密码
看到下图,标识密码设置成功。
方法2:
用临时密码登录mysql
# bin/mysql -uroot -p
Enter password:输入临时密码
设置新密码:
mysql> set password=password('456')
或者
mysql> set password='123';
重置完成后,建议刷新权限,让其立即生效。
mysql> flush privileges
2、把mysql客户端命令添加到环境变量
# echo 'export PATH=$PATH:/mysql_3306/bin' >>/etc/profile
# source /etc/profile
设置完成后,我们可以在任意位置调用mysql客户端。
3、手工定义配置文件(非常重要)
# vim /mysql_3306/my.cnf
[mysqld]
basedir=/mysql_3306
datadir=/mysql_3306/data
socket=/tmp/mysql.sock
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=600
innodb_file_per_table=1
lower_case_table_names=1
character_set_server=utf8
开启binlog
server_id = 1
log_bin = mysql-bin
max_binlog_size = 1G
binlog_format = row
binlog_row_image = full
# service mysql_3306 restart
注:如果重启之后报这个错,那么将my.cnf socket路径换成提示的路径即可
4、安全配置
# mysql_secure_installation
一路 Y搞定。
其主要就是是否启动密码校验器、是否设置root密码、是否允许root远程连接、是否移除测试数据库等等一系列功能。
5、开放远程连接
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql> flush privileges;
6、设置开机自启
# cd /etc/init.d/
# chmod +x mysql_3306
# chkconfig add mysql_3306
# chkconfig --level 345 mysql_3306 on
# chkconfig --list
mysql_3306:此处填写/etc/init.d 目录下 mysql的服务名
7、后续追加......