linux mysql安装
mysql数据库查看版本号
SELECT VERSION();
linux查看版本号
mysqld -V
mysql -version
数据库查看端口号
show VARIABLES like 'port';
show GLOBAL VARIABLES like 'port';
linux中可以用
netstat -anp | grep mysql
输入Root用户的密码后可以连接到MySQL,接下来执行以下命令删除Root用户:
use mysql;
delete from mysql.user where User='root' AND Host='localhost';
flush privileges;
其中use mysql;命令是进入MySQL系统;delete from user where User=’root’ AND Host=’localhost’;
命令是删除Root用户;flush privileges;命令是更新用户表。
输入完上述命令以后,即可成功删除Root用户,接下来就可以重新建立一个用户。删除Root用户后还需要做一步操作,就是更改Root用户的密码,然后使用以下命令:
update mysql.user set authentication_string=password('新的密码') where user='root' AND host='localhost';
update mysql.user set authentication_string=password('新的密码') where user='root' AND host='%';
flush privileges;
更改密码以后,重启MySQL服务,恢复原有的正常状态,就完成了MySQL删除Root用户的操作。
综上所述,MySQL删除Root用户的方法是比较简单的,但需要使用者在操作时谨慎仔细。
一、查看端口号
1、登录mysql
[root@localhost ~]# mysql -uroot -p
Enter password: 输入数据库密码;
2、使用show global variables like 'port'; 命令查看端口号,

13306即为当前端口号。
二、修改mysql端口号
1、编辑/etc/my.cnf文件
[root@localhost ~]# vi /etc/my.cnf
2、修改端口“port”为自己想要的端口;
3、重启mysql:
[root@localhost ~]# systemctl stop mysqld
[root@localhost ~]# systemctl start mysqld
错误

新建mysql.pid
touch /usr/local/mysql/data/mysql.pid
chmod -R 777 /usr/local/mysql/data
一.安装前的检查和准备工作。
1.1检查自己的liunx是否安装过mysql ,如果未安装执行下面命令应该为空的。
rpm -qa | grep mysql
或
rpm -qa | grep -i mysql
或
查看是否安装mysql
mysql -version
1.1.1如果有的话,就删除(XXXX是自己的mysql目录)
rpm -e --nodeps mysql-xxxx
rmp -e 文件名
或
如果有进行强行卸载
rpm -e --nodeps mysql-libs-5.1.52-1.el6_0.1.x86_64
1.2查询所有的mysql对应的文件夹
whereis mysqlm
find / -name mysql
1.2.1删除相关目录或者文件
rm -rf /usr/bin/mysql /usr/include/mysql /data/mysql /data/mysql/mysql
1.2.2验证一下是否删除干净
whereis mysqlm
find / -name mysql
1.3检查mysql用户组和用户是否已经创建过,没有就创建(4个命令一步一步操作)
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
groupadd mysql
useradd -r -g mysql mysql
二.下载mysql5.7
2.1下载MySQL有两种方式:
2.1.1从官网下载
官网下载MySQL安装包
官网地址:https://downloads.mysql.com/archives/community/
最新数据库下载地址
https://dev.mysql.com/downloads/mysql/
2.liunx命令下载(前提是liunx是可以访问外网)
由于在linux上下载比较快,所以,先使用yum安装wget
yum install wget
然后使用wget下载mysql文件包(通常都是下载到指定文件夹下,这里是在"/usr/local/"目录)
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz
登录自己的liunx ,复制上面的命令下载。
三.安装Mysql
用连接工具将下载的mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz上传到linux服务器的/usr/local目录下面
# 进入文件目录
cd /usr/local
# 解压
tar -zxvf mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz
# 解压后重命名为mysql
mv mysql-5.7.43-linux-glibc2.12-x86_64 mysql
# 检查mysql组和用户是否存在,如果没有则创建
cat /etc/group|grep mysql
groupadd mysql
# useradd -r参数表示mysql用户是系统用户,不可用于登录系统
useradd -r -g mysql mysql
# 创建data目录
mkdir /usr/local/mysql/data
# 将/usr/local/mysql/的所有者及所属组改为mysql
chown -R mysql.mysql /usr/local/mysql/
#赋予数据库目录权限
chown mysql:mysql -R /usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql
修改配置“/etc/my.cnf”
vim /etc/my.cnf
[mysqld]
#定义服务器 ID,用于主从同步(replication)
server_id=1
#启用二进制日志(binary logging),可以记录数据库的更改操作
log-bin=mysql-bin
#定义写入二进制日志的格式,`ROW` 表示以行为单位写入更改操作
binlog-format=ROW
#MySQL 安装目录的路径
basedir=/usr/local/mysql
#MySQL 数据库文件的存储路径,推荐放到大硬盘中,一般为/mnt/www下
datadir=/usr/local/mysql/data
#监听的端口号
port=13306
#设置 SQL 模式,指定 MySQL 应该如何处理不兼容的 SQL 语法或者非法的数据值
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#是否允许使用符号链接(symlinks)
#如果将 `symbolic-links` 设置为 `1`,则 MySQL 会在数据目录中遵循符号链接。这意味着,你可以使用符号链接将表空间或者数据库文件链接到其他位置,从而将数据存储在不同的磁盘或文件系统中。
#如果将 `symbolic-links` 设置为 `0`,则 MySQL 将不遵循符号链接,这意味着如果数据目录中出现符号链接,MySQL 将忽略它们。
#默认情况下,`symbolic-links` 的值为 `0`,这意味着 MySQL 不允许使用符号链接来链接数据文件或者日志文件。这是为了确保 MySQL 在某些操作系统和文件系统上的稳定性,因为符号链接可能会引入一些不确定性和安全风险。
symbolic-links=0
#允许的最大并发连接数
max_connections=1000
#定义 InnoDB 存储引擎表空间的存储结构,一个表对应一个独立的数据文件
innodb_file_per_table=1
#忽略大小写
#定义表名大小写敏感的设置。如果设置为 `1`,则 MySQL 将所有表名转换为小写
lower_case_table_names=1
#定义 MySQL 的默认字符集
character_set_server=utf8
#指定 MySQL 服务器进程的 PID 文件的存储位置,该文件包含正在运行的 MySQL 进程的进程 ID (PID)。PID文件通常位于 `/var/run` 或者 MySQL 数据目录中,以便其他工具可以轻松地找到MySQL进程。
#推荐放到大硬盘中,一般为/mnt/www下
pid-file = /usr/local/mysql/data/mysql.pid
#指定 MySQL 的错误日志的存储路径。错误日志记录了MySQL在运行中遇到的错误,可用于排查问题。 如果MySQL遇到错误,它会将错误信息写入这个日志文件,错误信息可能包括MySQL无法启动或者执行某个查询的错误等
#推荐放到大硬盘中,一般为/mnt/www下
log-error = /usr/local/mysql/data/mysqld.log
#是一个特殊的指令,它表示引入其他配置文件。在这个示例中,`/etc/my.cnf.d/` 目录下的配置文件也会被加载到 MySQL 配置文件中
!includedir /etc/my.cnf.d
或者
在/usr/local/mysql/support-files目录下创建my_default.cnf
# 拷贝,是否覆盖,是
cp my_default.cnf /etc/my.cnf
# 初始化Mysql
初始化数据库
cd /usr/local/mysql/bin
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql --pid-file=/usr/local/mysql/data/mysql.pid --initialize
如果出现以下错误
./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
执行: yum install -y libaio 或 yum install -y libaio.so.1 或 yum -y install numactl
初始化完成之后,输出的日志最后一行会有
root@localhost: PASSWORD
或者输入cat /data/mysql/mysql.err查看临时密码
初始化完成之后查看日志,可获取初始密码
cat /usr/local/mysql/data/mysqld.log

把启动脚本放到开机初始化目录
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
启动mysql
service mysql start
9.配置环境变量
vim /etc/profile
在底部添加:
export MYSQL_HOME="/usr/local/mysql"
export PATH="$PATH:$MYSQL_HOME/bin"
:wq保存退出后执行:
source /etc/profile
然后启动mysql,并查看mysql状态
#启动mysql
service mysql start
#查看mysql运行状态
service mysql status
修改密码
# 进入目录
cd /usr/local/mysql
# 登录 然后输入初始密码
./bin/mysql -u root -p
# 重置密码
mysql> set password=password('root');
mysql> grant all privileges on *.* to root@'%' identified by 'root';
mysql> flush privileges;
# 添加远程访问权限
mysql> use mysql;
update mysql.user set host='%' where user = 'root';
mysql> update mysql.user set host='%' where user = 'root';
mysql> flush privileges;
#查看用户列表
SELECT User, Host FROM mysql.user;
添加一个用户 test 并授权通过本地机(localhost)访问,密码"password"。
grant all privileges on *.* to test@localhost identified by 'password' with grant option
刷新刚才的内容*
flush privileges
5.查看用户
select host,user from mysql.user
# 退出登录
mysql> exit;
# 重启mysql生效
service mysql restart
使用show global variables like 'port';命令查看端口号
新建用户
如果找不到初始密码的文件,可以这么做:
# 修改my.cnf文件
vim /etc/my.cnf
# 添加内容
skip-grant-tables=1

停止权限验证skip-grant-tables=1,这样登录就不需要密码,直接回车
# 重启mysql
service mysql restart
# 登录 直接回车
./bin/mysql -u root -p
# 设置密码
update mysql.user set authentication_string=password('root') where user='root' ;
flush privileges;
grant select on `master`.* to root@localhost identified by 'root';
# 添加远程访问权限
mysql> use mysql;
mysql> update user set host='%' where user = 'root';
mysql> flush privileges;
# 退出登录
mysql> exit;
# 修改my.cnf文件
vim /etc/my.cnf
# 去掉内容
skip-grant-tables=1
# 重启mysql
service mysql restart
五、设置MySql自动启动
# 将服务文件拷贝到init.d下,并重命名为mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 赋予可执行权限
chmod +x /etc/init.d/mysqld
# 添加服务
chkconfig --add mysqld
# 显示服务列表
chkconfig --list
如果看到mysql的服务,并且3,4,5都是开的话则成功

如果是关,则键入
chkconfig --level 345 mysqld on
ps -ef|grep mysql
然后登录mysql
#由于当前并没有全局设置mysql命令,所以先切换到查到/文件夹下
./mysql -uroot -pPASSWORD
然后再执行下面的操作 修改密码
SET PASSWORD = PASSWORD('newPassword');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
use mysql;
#使root用户可以在任何IP访问
update user set host = '%' where user = 'root';
#刷新
FLUSH PRIVILEGES;
--------------或------
修改密码
mysql> use mysql; mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; mysql> flush privileges;
14.退出后重启服务
mysql> exit service mysql restart
然后在重新登录;
也有许多小伙伴问什么在其他目录下使用mysql登录命令没有用,mysql命令没有找到,这是因为没有设置软连接,此时,先找到我们安装mysql的目录
然后输入一下命令建立软连接
ln -s /usr/local/mysql/bin/mysql /usr/bin/
设置mysql开机启动
#设置mysql开机自启动
chkconfig mysql on
#取消mysql开机自启动
chkconfig mysql off
# 查看系统服务列表,以及每个服务的运行级别
chkconfig --list
#或
systemctl list-unit-file
名称:你的项目名称
主机:你liunx的IP地址
协议:SFTP
端口一般都是:22
方法:password
用户名:你的liunx的管理员的账号,一般都是root
密码:就是你设置的密码。
不管是通过那种方式下载的mysql5.7。都会在你liunx目录里。
下面是mysql5.7安装!
1.在liunx中cd 到你上传或者下载的mysql目录。
2.然后复制下面命令解压它:
#解压
tar -zxvf mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz
#将mysql-5.7.43-linux-glibc2.12-x86_64重命名为mysql
mv mysql-5.7.43-linux-glibc2.12-x86_64 /usr/local/mysql
3.解压完成后可以看到上图中多了一个文件夹目录。
4.复制下面的命令:移动这个目录到/usr/local目录下,并修改名字为mysql
mv mysql-5.7.43-linux-glibc2.12-x86_64 /usr/local/mysql
5.复制下面的命令:在/usr/local/mysql目录下创建data目录(一定要在这个目录中创建!!)
mkdir /usr/local/mysql/data
上面步骤完毕后,有的同学可能之前装的mysql到这里后就安装不上了。
是因为你的文件和文件夹没有给他们读写的权限。
6. 修改mysql目录的下所有的目录及文件夹的用户组和用户的权限。
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql
如果执行报错,多半是没有权限,执行下面语句赋予权限,然后重试
chown mysql:mysql -R /usr/local/mysql
6 查看 Mysql 运行状态
service mysqld status
看见这个绿色就表示启动成功了.

7 查看初始密码(红色部分为初始密码)
grep ‘password’ /var/log/mysqld.log

如果能正常查看到,则OK;如果查看不到,则表示没有密码。
7.如果输入上面命令报错!就说明你没有创建MySQL的用户!(没报错请忽略这一步!)
如果出现 chown: invalid user: ‘mysql:mysql’ 错误,说明mysql用户不存在,执行以下命令,操作完再执行更改权限命令


使用下面命令添加mysql用户
groupadd mysql
useradd -r -g mysql mysql
8.下面进行编译并初始化mysql
初始化会出现一个临时密码,一定要记住这个密码!复制保存出来!(后面改密码要用!)
8.1 进入你安装好的mysql的/bin目录
cd /usr/local/mysql/bin
8.2 复制下面的命令进行编译和初始化。(重要)
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql --pid-file=/usr/local/mysql/data/mysql.pid --initialize

上图出现的临时密码一定要记录下来!
到这一步就算是安装好了!!!(如果报错,请往下看!),翻到最后!!!!
但是,你还不能访问它!
用上面介绍的Xftp软件进入/usr/local/mysql的目录。在这里新建一个my.cnf的文件。
(mysql在5.0以后就不自带my.cnf文件了,需要自己创建!)
用Xftp打开这个文件,右键,用记事本编辑。(复制下面的配置信息到你的my.cnf文件里)
[mysqld]
datadir=/usr/local/mysql/data
port = 13306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
# 允许最大连接数
max_connections=400
innodb_file_per_table=1
lower_case_table_names=1
# 服务端使用的字符集默认为utf8mb4
character_set_server=utf8mb4
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
下面是注解
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=13306
上面的配置不用我解释了吧?不懂的自己百度搜下吧!
9.启动mysql服务。
/usr/local/mysql/support-files/mysql.server start
10.添加mysql 软连接并重启mysql服务。(一步一步来,这是三个命令不是一个!!)
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
service mysql restart
11.登录mysql ,并修改你的初始密码!(密码为上面生成的临时密码)
mysql -u root -p
复制下面的命令修改密码:(这里我改的是123456,你们随意!)
set password for root@localhost = password('123456');
12.这里大家应该不会在这里去操作mysql数据库吧?(开启远程连接!用Navicat界面管理软件去连接)
登录MySQL后:输入下面命令:
use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;
执行完毕后就可以用远程连接了!
13.报错解决:
报错信息如下:(contOS 7.5 以上会报这个错!!因为它自带了my.cnf文件,编译或者启动mysql的时候会先去找/etc/my.cnf文件,然后你的data文件夹路径会找不到!就会报错!)
Starting MySQL.The server quit without updating PID file (/usr/local/mysql/data/..pid).
解决方法:
1.把自己上面创建的my.cnf文件删除,然后用liunx自带的my.cnf文件。
liunx 自带my.cnf路径: /etc/my.cnf
至此,结束MySQL的安装与测试!
注: 如果显示数据库无法访问
修改MySql配置文件my.cnf,新增skip-grant-tables
find / -name my.cnf
修改配置“/etc/my.cnf”
vim /etc/my.cnf
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
修改文件之前记得先关闭mysql服务
service mysqld stop
通过 vi 指令进入文件
新增skip-grant-tables ,添加skip-grant-tables,这样mysql可以免密登录。
重启服务
service mysqld start
再次连接MySql,重置密码
任意密码就可以进入了
mysql -u root -p
执行 mysql -u root -p 时报错:
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
原因:mysql在启动时发现缺少 libncurses.so.5 这个依赖,并且在/usr/lib以及/lib中也无法找到该依赖
解决:
find / -name 'libncurses*'
在/usr/lib、/lib、/usr/lib64中寻找一个大于或者等于该依赖版本的依赖文件,我的是在/usr/lin64中找到了一个libncurses.so.6.1,然后建立一个软链接(相当于快捷方式):
sudo ln -s 文件路径 快捷方式路径
sudo ln -s /usr/lib64/libncurses.so.6.1 /usr/lib64/libncurses.so.5
这样就在/usr/lib64下建立了一个libncurses.so.5的快捷方式。mysql在启动时就会寻找该libncurses.so.5依赖的快捷方式,最后实际链接到了libncurses.so.6.1依赖。
或
find / -name 'libtinfo*'
error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
sudo ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5
此时再执行 mysql -u root -p 时就会通过
此时再次查看mysql依赖:
通过 show databases; 注意带 ; 号
show databases;
切换到mysql数据库
重置密码(为 root )
update user set authentication_string=password(‘root’) where user=‘root’;
修改配置文件my.cnf,删除skip-grant-tables,重启,再登录
删除skip-grant-tables
重启服务
service mysqld start
根据指令进入MySQL数据库
mysql -uroot -p
再次使用新密码登录即可至此!Linux 下 Mysql 安装到使用讲解完成!
【温馨提示】
如果本地访问Linux数据库失败,则记得看下下面三个配置是否OK。
(1)服务器的防火墙mysql端口3306是否开放
查看防火墙是否已开放3306端口
firewall-cmd --query-port=3306/tcp
设置3306端口为永久开放
firewall-cmd --add-port=3306/tcp --permanent
查看firewalld状态,发现当前是dead状态,即防火墙未开启
systemctl status firewalld
关闭防火墙
systemctl stop firewalld
重启防火墙(设置了新的端口记得先关闭,再重启)
systemctl status firewalld
(2)如果是阿里云ECS,记得查看云安全组规则是否开放了3306端口,如果没有,记得加上
(3)如果链接提示如下,则是没有允许远程登录
解决办法:
登录服务器mysql数据库
执行 use mysql;
执行 update user set host = '%' where user = 'root';
执行 FLUSH PRIVILEGES;
设置mysql开机启动
#设置mysql开机自启动
chkconfig mysql on
#取消mysql开机自启动
chkconfig mysql off
# 查看系统服务列表,以及每个服务的运行级别
chkconfig --list
#或
systemctl list-unit-file
设置MySql自动启动
# 将服务文件拷贝到init.d下,并重命名为mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 赋予可执行权限
chmod +x /etc/init.d/mysqld
# 添加服务
chkconfig --add mysqld
# 显示服务列表
chkconfig --list
如果看到mysql的服务,并且3,4,5都是开的话则成功

如果是关,则键入
chkconfig --level 345 mysqld on
防火墙设置
(1)服务器的防火墙mysql端口3306是否开放
firewall-cmd --query-port=3306/tcp
(2)设置3306端口为永久开放
firewall-cmd --add-port=3306/tcp --permanent
(3)查看firewalld状态,发现当前是dead状态,即防火墙未开启
systemctl status firewalld
(4)关闭防火墙
systemctl stop firewalld
(5)重启防火墙(设置了新的端口记得重新防火墙)
systemctl restart firewalld

浙公网安备 33010602011771号