Linux安装mysql

原文参考如下文章:

https://blog.csdn.net/qq_35206261/article/details/81321201

(这篇文章写得已经很好了,只是按照该文章的安装步骤,我遇到了一点问题,所以参考上面的文章,稍作修改,记录了一下)

1、下载 mysql 安装包,并解压到 /usr/local/mysql 文件夹

  Linux安装mysql服务分两种安装方法: 

  ①源码安装,优点是安装包比较小,只有十多M,缺点是安装依赖的库多,安装编译时间长,安装步骤复杂容易出错,故不推荐

   ②使用官方编译好的二进制文件安装,优点是安装速度快,安装步骤简单,缺点是安装包很大,推荐

   为了加快下载速度,使用华为的镜像,地址如下:https://mirrors.huaweicloud.com/mysql/Downloads/MySQL-5.7/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

在 Linux 中,执行如下命令:

# 切换到 /usr/local
cd /usr/local
# 下载 mysql 镜像安装包
curl -O https://mirrors.huaweicloud.com/mysql/Downloads/MySQL-5.7/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
# 解压
tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
# 重命名文件夹为 mysql
mv mysql-5.7.26-linux-glibc2.12-x86_64 mysql

2、添加用户组mysql和用户mysql,并将其添加到mysql用户组中

# 添加用户组 mysql
groupadd mysql

# useradd -r参数表示mysql用户是系统用户,不可用于登录系统
# useradd -g参数表示把mysql用户添加到mysql用户组中
useradd -r -g mysql mysql

3、检查是否安装了 libaio

rpm -qa | grep libaio

# 如果未安装,执行如下命令安装
yum install libaio

4、配置 my.cnf 文件

# 如果 /etc/my.cnf 不存在,则创建
touch /etc/my.cnf

# 如果 /etc/my.cnf 存在,则清空文件内容
cd /etc
:>my.cnf

# vim 编辑 my.cnf,填充如下内容:
[mysql] # 设置mysql客户端默认字符集 default
-character-set=utf8 [mysqld] skip-name-resolve #设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=/usr/local/mysql # 设置mysql数据库的数据的存放目录 datadir=/usr/local/mysql/data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB lower_case_table_names=1 max_allowed_packet=16M

如图:

5、创建data文件夹

cd /usr/local/mysql
mkdir data

6、将mysql目录的所属用户和组改为mysql

chown -R mysql:mysql ./

7、初始化mysqld 生成初始化密码

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

这里可能会报错(我就报错了)。报错信息

bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory

解决方案:

安装依赖包 yum -y install numactl.x86_64 ,安装完后重新执行初始化即可

yum -y install numactl.x86_64

生成的初始密码如下图:

8、设置开机启动

# 复制mysql.server脚本到资源目录
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
# 赋予执行权限
chmod +x /etc/rc.d/init.d/mysqld
# 将 mysqld 服务加入到系统服务
chkconfig --add mysqld
# 检测是否生效
chkconfig --list mysqld

得到如下结果,则说明生效:

启动 mysql 服务:

9、配置环境变量

打开/etc/profile配置文件,添加如下内容

#mysql环境变量
PATH=$PATH:/usr/local/mysql/bin
export PATH

使其立即生效:

source /etc/profile

10、修改 mysql 密码

1)登录

 2)  修改密码

mysql> SET PASSWORD = PASSWORD('123456');
mysql> use mysql; mysql> update user set authentication_string=PASSWORD('123456') where User='root';

 3) 允许远程访问

mysql> grant all privileges on *.* to root@"%" identified by "password" with grant option;

mysql> flush privileges;

11、如果使用navicate进行远程连接访问,报如下错误:

 解决方案:

1) 关闭mysql服务

[root@baidu64 mysql]# service mysqld stop
Redirecting to /bin/systemctl stop mysql.service

2) 修改/etc/my.cnf修改为无密码登录

在my.cnf配置文件添加如下内容:

# mysql无密码登录
skip-grant-tables

3)重启mysql服务

[root@baidu64 mysql]# service mysqld restart
Redirecting to /bin/systemctl restart mysql.service

4)无密码登录mysql

[root@baidu64 mysql]# mysql -u root

5)再次修改密码

mysql> use mysql;

mysql> update mysql.user set authentication_string=password('123456') where user='root' ;

6) 然后将my.cnf无密码登录配置去掉(就是上面刚加的那句话)

7) 退出mysql,并重启

[root@baidu64 mysql]# service mysqld restart
原文地址:https://www.cnblogs.com/lkc9/p/11955109.html