原文参考如下文章:
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 :>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> SET PASSWORD = PASSWORD(‘123456‘); 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 mysql stop
Redirecting to /bin/systemctl stop mysql.service
2) 修改/etc/my.cnf修改为无密码登录
在my.cnf配置文件添加如下内容:
# mysql无密码登录
skip-grant-tables
3)重启mysql服务
[root@baidu64 mysql]# service mysql 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 mysql restart
原文:https://www.cnblogs.com/lkc9/p/11955109.html