Linux安装MySQL并远程连接

准备工作

64位的机器,先去官网下载安装包mysql-5.5.61-linux-glibc2.12-x86_64.tar.gz
将安装包上传到Linux机器上
移动到目录,mv xxx /usr/local
解压,tar -zxvf xxx
多了一个mysql-5.5.61-linux-glibc2.12-x86_64的目录
将目录重命名成mysql,mv xxx mysql,这样更方便操作

添加用户

1
2
groupadd mysql
useradd -g mysql mysql

添加了一个mysql的用户组和全局的用户

初始化命令

cd到mysql目录

1
2
3
4
5
6
# 新建一个文件夹放数据
mkdir ./data/mysql
# 更改当前目录的权限
chown -R mysql:mysql ./
# 初始化数据库
./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/mysql

记住临时密码

1
[Note] A temporary password is generated for root@localhost: o*s#gqh)F4Ck

配置文件

1
2
3
4
5
6
7
8
9
# 拷贝后可以用service命令来启动数据库
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
# 删除默认的配置文件或者将mysql里面的cnf文件拷贝一份到etc下,没什么影响
rm -rf /etc/my.cnf
# 修改启动脚本
vim /etc/init.d/mysqld
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/mysql

启动

1
2
3
4
5
6
# 启动mysql
service mysqld start
# 关闭mysql
service mysqld stop
# 查看运行状态
service mysqld status

加入环境变量

可以在任意目录下使用mysql命令

1
2
3
4
# G跳到文件末尾行
vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
source /etc/profile

修改一下密码

用临时密码登录,mysql -u root -p
或者直接mysql uroot登录
执行修改密码,set password for root@localhost = password('123456');

出现的问题

命令行可以登录,但是同局域网下的Windows无法用Navicat连接

登录mysql后输入如下命令:

1
2
3
# '123456'是密码
grant all privileges on *.* to 'root'@'%' identified by '123456';
flush privileges;

防火墙设置

1
2
3
4
5
6
7
8
# 开放3306端口并重启防火墙
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
# 保存配置
/etc/rc.d/init.d/iptables save
#重启服务
/etc/rc.d/init.d/iptables restart
# 查看已开放端口
/etc/init.d/iptables status

在Navicat上就可以连接了