Linux Centos下安装mysql详细步骤

1.下载安装包
下载地址:https://dev.mysql.com/downloads/mysql/5.6.html#downloads


2.解压
tar -zxvf mysql-5.7.9-linux-glibc2.5-x86_64.tar.gz -C /usr/local/


3.创建软连接
进入安装目录 cd /usr/local/
创建软连接 ln -s mysql-5.7.9-linux-glibc2.5-x86_64 mysql


4.添加用户组
为centos添加mysql用户组和mysql用户(-s /bin/false参数指定mysql用户仅拥有所有权,而没有登录权限)
groupadd mysql
useradd -r -g mysql -s /bin/false mysql


5.赋予权限
进入安装mysql软件的目录,命令如下 cd /usr/local/mysql
修改当前目录拥有者为新建的mysql用户,命令如下:chown -R mysql:mysql ./


6.初始化mysql
./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
如果出现如下图所示则为安装成功,红线部分为生成的默认密码:

a temporary password is generated for ...
 
7.启动mysql服务
cd /usr/local/mysql
./support-files/mysql.server start

7.1 socket file don’t exists
如果出现如下错误,则说明mysql配置文件/etc/my.cnf中的路径不对,修改内容如下,datadir(datadir一定要加)和socket都修改成mysql的安装目录下,增加[client]板块,用于命令行连接mysql数据库。
 
[mysqld]
port=3306
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
user=mysql
max_connections=151
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
 
# 设置忽略大小写
lower_case_table_names = 1
# 指定编码
character-set-server=utf8
collation-server=utf8_general_ci
# 开启ip绑定
bind-address = 0.0.0.0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
 
#指定客户端连接mysql时的socket通信文件路径
[client]
socket=/usr/local/mysql/mysql.sock
default-character-set=utf8

7.2 quit without updating PID file
Starting MySQL......The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid). ... failed!

解决办法:

重新初始化mysql 重复第6步
需删除data目录及下面的文件 
 cd /usr/local/mysql
 rm –rf data

重新初始化

./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data –initialize

给data目录授权
 chmod –R 755 data

再次启动 ./support-files/mysql.server start

ps –ef|grep mysql  查看,启动成功

如果还是没能解决,问题可能的原因有多种,具体什么原因最好的办法是先查看下错误日志:
7.2.1、可能是/usr/local/mysql/data/mysql.pid文件没有写的权限
解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data”

“chmod -R 755 /usr/local/mysql/data”  然后重新启动mysqld!

7.2.2、可能进程里已经存在mysql进程
解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9  进程号”杀死,然后重新启动mysqld!

7.2.3、可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
解决方法:去mysql的数据目录/usr/local/mysql/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。本人就是使用第三条方法解决的 !

7.2.4、mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。
解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data

另外,用rpm包安装的MySQL是不会安装有/etc/my.cnf文件的,至于为什么没有这个文件而MySQL却也能正常启动和作用,在点有两个说法,第一种说法,my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动,第二种说法,MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于rpm包安装的MySQL,

解决方法,只需要复制一个/usr/share/mysql目录下的.cnf文件到/etc目录,并改名为my.cnf即可。


7.2.5、skip-federated字段问题
解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。

7.2.6、错误日志目录不存在
解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限

7.2.7、selinux惹的祸,如果是centos系统,默认会开启selinux
解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。我是以上挨个操作,完成了第7个操作后解决的。
————————————————
原文链接:https://blog.csdn.net/qq_39954916/article/details/120470807

8.将mysql进程放入系统进程
cp support-files/mysql.server /etc/init.d/mysqld

重启mysql:
service mysqld restart
9.配置环境变量
输入 vim /etc/profile
按 i 键后 进入insert模式,进入insert模式后才能进行修改  输入 
export PATH=$PATH:/usr/local/mysql/bin 
  修改完成后
  按esc键进入command模式,
  然后:wq 保存文件并退出vi(注意先冒号)
 保存退出,再编译下:
source /etc/profile 
10.登录mysql
mysql –u root –p
输入刚刚系统生成的密码
11.修改密码
show databases
会报错:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

将root的密码改为 root123456
alter user 'root'@'localhost' identified by 'root123456';

12.允许远程连接数据库
切换到mysql默认数据库
use mysql;

查看user表
select user,host from user;

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+

允许远程连接命令
update user set user.Host='%' where user.User='root';

再次查看
select user,host from user;

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| root             | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
+------------------+-----------+

13.刷新权限
flush privileges;
14.开启3306防火墙端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent

如果还是无法远程连接,查看/etc/my.cnf
找到bind-address = 127.0.0.1这一行
改为bind-address = 0.0.0.0即可

firewall-cmd --list-all   看看3306是否列出来,如果没列出来,需要打开
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp1s0
  sources: 
  services: ssh dhcpv6-client
  ports: 3306/tcp 1883/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

15.设置开机自启动
退出mysql回到linux命令模式 
quit

chkconfig mysqld on 
要取消掉某个服务自动启动,只需要将最后的参数 “on” 变更为 “off” 即可。

查看自启项目 chkconfig --ist
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off
netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off

16.客户端连接mysql
在IDEA的数据库客户端数据ip、端口、用户名、密码、数据库名,点击Test Connection
报错
Failed
Communications link failure  The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

查看IDEA连接的驱动版本 8.0.25,而数据库版本是8.0.26

下载8.0.26驱动
https://dev.mysql.com/downloads/connector/j/

你可能感兴趣的:(数据库,mysql,linux,centos)