Linux安装MySQL教程

本章主要讲了如何通过解压方式在Linux下安装MySQL,以及如何设置让我们可以远程连接到服务器上的mysql.

更多文章欢迎访问我的个人博客–>幻境云图

软件统一放在/usr/software下 解压后放在单独的文件夹下/usr/local/java//usr/local/mysql

其中:#为Linux命令,mysql则是mysql下的命令

软件统一放在/usr/software下 解压后放在单独的文件夹下/usr/local/java//usr/local/mysql

安装包下载mysql-5.7.24-linux-glibc2.12-x86_64.tar

网址https://dev.mysql.com/downloads/mysql/5.7.html#downloads

mysql

1. 安装依赖

1
# yum install -y cmake make gcc gcc-c++ libaio ncurses ncurses-devel

2. 解压文件

压缩包上传到虚拟机/usr/software目录下,进入这个目录

解压文件

1
# tar zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

将解压后的文件移动到/usr/local/mysql

1
# mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql

3. 添加用户和赋权

1.添加用户和用户组

给mysql赋权的用户必须对当前目录具有读写权限,但是一般不用root账户,所以创建一个用户mysql。

执行命令:创建用户组mysqlgroupadd mysql`

创建用户也叫mysql

1
2
// 命令中第一个mysql是用户,第二个mysql是用户组。
# useradd -r -g mysql mysql

2.给用户赋权限

一定保证当前是在/usr/local/mysql 目录下

给用户组赋权限

1
2
//mysql是用户组名
# chgrp -R mysql.

给用户赋权限

1
2
//这个mysql是用户名
# chown -R mysql.

4. 数据库初始化

安装数据库 :

1
2
// 这里会生成临时密码,后边有用
# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

执行以下命令创建RSA private key :

1
# bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data

5. 配置my.cnf

1
# vim /etc/my.cnf

内容如下:

1
2
3
4
5
6
7
8
9
10
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
#不区分大小写 (sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 这个简单来说就是sql语句是否严格)
lower_case_table_names = 1
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid
1
2
# cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld
# vim /etc/init.d/mysqld

添加以下内容,在46行

1
2
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

6. 修改密码

启动mysql

1
# service mysqld start

加入开机起动

1
# chkconfig --add mysqld

进入客户端

登录修改密码

1
# mysql -uroot -p 上面初始化时的密码

如果出现错误 需要添加软连接

1
# ln -s /usr/local/mysql/bin/mysql /usr/bin

如果出现Access denied for user 'root'@'localhost' (using password: YES)应该是密码错了,直接强行修改密码好了。先停掉mysql.

1
# service mysql stop

然后修改配置文件

1
# vim /etc/my.cnf

在[mysqld]后面任意一行添加skip-grant-tables用来跳过密码验证的过程

接下来我们需要重启MySQL

1
# /etc/init.d/mysqld restart

重启之后输入命令mysql即可进入mysql了,然后开始修改密码。

1
2
3
4
5
mysql> use mysql;
# 这里修改密码的命令在5.7以上和5.7以下是不同的 需要注意
mysql> update user set authentication_string=passworD("你的密码") where user='root';
flush privileges;
mysql> quit

完成后可以把配置文件中的跳过密码验证去掉。

然后就可以正常使用啦。

7. 外部访问

首先进入mysql,

1
# mysql -u root -p

接着创建远程连接 MySQL 的用户 mysql命令

1
2
3
4
-- 创建用户、密码及权限范围 第一个 roo t为用户名 @后为适用的主机,‘%’表示所有电脑都可以访问连接,第二个 root 为密码
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY 'root' WITH GRANT OPTION;
-- 立即生效
mysql> flush privileges;

查看数据库用户:

1
2
3
4
5
6
7
-- 使用 mysql 库
mysql> use mysql;
-- 查看用户
mysql> SELECT DISTINCT CONCAT('User: [', user, '''@''', host, '];') AS USER_HOST FROM user;
-- 查看端口
mysql> show global variables like 'port';
--mysql 默认端口为3306

解决防火墙问题

防火墙默认只开放了22端口,要访问数据库要么关掉防火墙要么修改配置文件,开放3306端口

修改防火墙配置: 命令

1
# vim /etc/sysconfig/iptables

添加以下内容

1
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

然后重启防火墙

1
# service iptables restart

最后查看服务器IP

1
# ip a

到这里应该就可以通过IP和端口号远程连接服务器上的MySQL了。

8. 问题

mysql中执行命令出现以下错误:

1
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

解决: 修改用户密码

1
mysql> alter user 'root'@'localhost' identified by '你的密码';

参考

https://blog.csdn.net/z13615480737/article/details/80019881

https://www.cnblogs.com/goodcheap/p/7103049.html

------------------本文到此结束感谢您的阅读------------------
0%