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路径换成提示的路径即可

image-20210428223849279

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、后续追加......