linux安装mysql5.7
安装前准备:
在mysql官网下载对应系统版本的mysql安装包mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz,并用ftp上传到/user/local/;
mysql数据目录:/data/mysql
日志位置:/var/log/mariadb
一、将其解压,并移动
# tar -zxvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
# mv mysql-5.7.29-linux-glibc2.12-x86_64 /usr/local/mysql
二、创建需要的目录,并授权
创建组 # groupadd mysql 创建mysql用户并阻止其登录shell # useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql/ 更改目录的权限 # cd /usr/local/mysql/ # chown -R mysql . # chgrp -R mysql . 创建数据目录 # mkdir /data # mkdir /data/mysql 更改目录权限 # cd /data/mysql/ # chown -R mysql /data/mysql/ 创建日志目录 # mkdir /var/log/mariadb/ 创建日志文件 # vim /var/log/mariadb/mariadb.log
打开日志文件后直接保存退出
#:wq
更改权限 # chown -R mysql . # chgrp -R mysql .
三、初始化数据
# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
执行命令后会有提示初试临时密码需要记下来:
2020-04-04T08:05:51.268606Z 1 [Note] A temporary password is generated for root@localhost: hoSv+epGf1BW
四、拷贝mysql.server到/etc/init.d下,并编辑它
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql # vim /etc/init.d/mysql 修改其中的basedir及datadir的值 basedir=/usr/local/mysql datadir=/data/mysql
这样就能在linux全局下使用start、stop、status启动、停止、查看mysql状态
# service mysql start
# service mysql stop
# service mysql status
五、修改my.cof文件
# vim /etc/my.cnf datadir=/data/mysql
socket=/data/mysql/mysql.sock
六、启动mysql
启动mysql [root@localhost mysql]# /etc/init.d/mysql start Starting MySQL. SUCCESS! [root@localhost mysql]# mysql -hlocalhost -uroot -p 在此处我遇到了一个错误,则执行下一条命令,无错误则跳过 -bash: mysql: command not found [root@localhost mysql]# ln -s /usr/local/mysql/bin/mysql /usr/bin/ [root@localhost mysql]# mysql -hlocalhost -uroot -p Enter password: 在此处输入正确的初试密码后提示错误,没有套接字相关的文件 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
在这里说明一下,MySQL客户端与服务端进行连接的时候,有三种连接方式:TCP/IP、命名管道和共享内存、Unix域套接字文件;
在linux主机上使用localhost进行登录或者使用--protocol=socket的启动参数,服务端程序和客户端程序之间就通过Unix域套接字文件进行通信,使用Unix域套接字进行通信时,就使用到了在/etc/my.conf文件中指定的mysql.sock文件。
在多次安装该版本的mysql后发现,由于第一次启动服务端程序时修改了my.conf文件中的mysql.sock文件的路径参数,可能是导致不能产生mysql.sock的原因。
由于本虚拟机已经设置好网络,则使用tcp/ip的方式进行连接,且在正常情况下均是使用tcp/ip进行连接。
由于是临时登录,且套接字登录的方式仅适用于本机,所以接下来就使用ip的方式进行登录,并登录成功 [root@localhost mysql]# mysql -h127.0.0.1 -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.29
七、修改密码为root
mysql> set password=password('root');
Query OK, 0 rows affected, 1 warning (0.00 sec)
八、使用navicat等连接工具进行连接测试
使用连接工具进行连接时出现了错误:
1130 - Host XXX is not allowed to connect to this MySQL server。
mysql> use mysql Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> select host from user where user='root'; +-----------+ | host | +-----------+ | localhost | +-----------+ 1 row in set (0.00 sec) Host列指定了允许用户登录所使用的IP user=root Host=localhost,表示只能通过本机客户端去访问。 %是通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。 如果Host=%,表示所有IP都有连接权限。 注意:将host设置为%会存在安全问题,具体的设置可以根据生产环境的IP进行设置; mysql> update user set host = '%' where user = 'root'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> select host from user where user='root'; +------+ | host | +------+ | % | +------+ 1 row in set (0.00 sec) 执行flush privileges使配置立即生效 mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
九、设置MYSQL开机自动启动环境变量增加MySQL相关:
[root@localhost mysql]# vim /etc/profile 在最后增加一句 export PATH=/usr/local/mysql/bin:$PATH [root@localhost mysql]# source /etc/profile
开机自动启动
[root@localhost mysql]# cd /etc/init.d [root@localhost init.d]# chmod 755 /etc/init.d/mysql [root@localhost init.d]# chkconfig --add mysql [root@localhost init.d]# chkconfig --level 345 mysql on
十、在使用localhost进行连接的时候出现ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)的报错信息
解决方式:https://www.cnblogs.com/jpfss/p/9734487.html
十一、开放mysql的端口号
由于linux使用的为centOS7,iptable命令不再使用
开启3306端口 # firewall-cmd --zone=public --add-port=3306/tcp --permanent 查询端口号3306是否开启: # firewall-cmd --query-port=3306/tcp 重启防火墙: # firewall-cmd --reload 查询有哪些端口是开启的: # firewall-cmd --list-port
至此安装完成,可以开始使用啦。
附mysql下载链接:
链接:https://pan.baidu.com/s/1k-rgSqQ296YzC86bhVnQ_A
提取码:dtoa

浙公网安备 33010602011771号