Linux 安装 MySQL 5.7 并连接 Navicat 详细过程

目录

MySQL 安装及配置

MySQL 设置

连接 Navicat

其他问题


MySQL 安装及配置

官方下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads

解压
tar -xvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
解压后移动至 /usr/local/mysql
mv mysql-5.7.30-linux-glibc2.12-x86_64 /usr/local/mysql

 

创建用户组和用户并修改权限

groupadd mysql
useradd -r -g mysql mysql

创建数据目录并赋予权限
mkdir -p  /data/mysql              #创建目录
chown mysql:mysql -R /data/mysql   #赋予权限

 

配置 my.cnf

vim /etc/my.cnf

内容如下:

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true

 

MySQL 设置

初始化数据库

cd /usr/local/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

 

查看密码

cat /data/mysql/mysql.err
该密码是随机产生的

 

启动 mysql 并修改密码

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
启动 mysql
service mysql start 或 /etc/init.d/mysql start
查看
ps -ef|grep mysql

改密码这里我遇到了一个问题,有的 Linux 版本可以直接使用 service mysql start 启动MySQL,而我使用的不行,需要使用 /etc/init.d/mysql start 启动。

 

修改密码方法 1

./mysql -u root -p   #bin目录下
这里需要使用上面红框括起来的密码

执行这3步
SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;

 

修改密码方法 2

使用该方法,还完成了一些其他的配置。

./mysql_secure_installation

 

 

连接 Navicat

先登录数据库,然后执行下面3个命令,使用 % 能让任何 host 连接,也可以设置特定的 IP。如果不进行设置会报下面的错:

use mysql                                            #访问mysql库
update user set host = '%' where user = 'root';      #使root能被任何host访问
FLUSH PRIVILEGES;                                    #刷新

完成设置后,我笔记本 Linux 的 Navicat 可以连接数据库,我台式电脑 Windows 的 Navicat 也能连接到数据库了。

 

 

其他问题

在别的目录启动 mysql

这样安装下来,每次使用 mysql 都需要到 bin 目录下,按照以下方法就可以在常用目录下登陆 mysql:

在常用目录下使用mysql的方法
pwd查看常用目录路径
ln -s /usr/local/mysql/bin/mysql 常用目录路径

 

mysql 重启后报错 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

在上网查阅资料,有的博客说是少了一个配置。需要在 /etc/my.cnf文件中添加 socket=/tmp/mysql.sock。但是我们上面的配置中已经有了这一项了,所以我使用 /etc/init.d/mysql start 启动 MySQL 后就解决问题了。没有配置相应内容的,需要配置相应内容后再启动。

 

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

/etc/my.cnf 文件,在 [mysqld] 下面添加 skip-grant-tables 这个配置。然后需要重启 MySQL 的服务,直接在 /usr/local/mysql/bin 目录下使用 ./mysql 命令,此时是不需要密码就能登录进去的。通过该语句完成密码的重置工作:

update user set authentication_string=password("新密码") where user="root"; 

然后需要按连接 Navicat 的方法设置,退出后删除 skip-grant-tables 配置再重启服务即可解决问题。

 

安装配置过程中常用命令及目录

配置 my.cnf
vim /etc/my.cnf

启动 mysql
service mysql start或/etc/init.d/mysql start

/usr/local/mysql/bin 下使用 ./mysql

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章