提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
提示:这里可以添加本文要记录的大概内容:
Linux源码安装Mysql5.7
初始化数据库,连接数据库报错
提示:以下是本篇文章正文内容,下面案例可供参考
一、下载MySQL安装包到/usr/local/software下
cd /usr/local/software
wget-c https://downloads.mysql.com/archives/get/p/23/file/mysql-test-5.7.36-linux-glibc2.12-x86_64.tar.gz
二、将mysql安装到/usr/local/mysql-5.7.36下
解压
tar -zxvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz -C /usr/local
移动
mv mysql-5.7.36-linux-glibc2.12-x86_64 /usr/local/mysql-5.7.36
三、新建data目录
代码如下(示例):
mkdir /usr/local/mysql-5.7.36/data/mysql
四、新建mysql用户、mysql用户组
创建mysql用户组
groupadd mysql
创建Mysql用户
useradd mysql -g mysql
五、将/usr/local/mysql-5.7.36的所有者及所属组改为mysql
chown -R mysql.mysql /usr/local/mysql-5.7.36
六、初始化mysql
/usr/local/mysql-5.7.36/bin/mysqld --user=mysql --basedir=/usr/local/mysql-5.7.36/ --datadir=/usr/local/mysql-5.7.36/data --initialize
#如果有警告子类的忽略就行,只要没有error或者faille就代表初始化成功了
#如果出现以下错误,则执行下面的命令来安装numactl,然后再重新执行上面的mysql命令
错误样例
/usr/local/mysql-5.7.36/bin/mysqld: err while loading shared libraries: libnuma.so.1:cannot open shared object file: No such or directory
安装numactl
yum -y install numactl
**注意初始化的时候最后有一行 A temporary password is generated for root@localhost: TyAtzkD,#4K6 TyAtzkD,#4K6:为数据库密码后面要用**
七、编辑/etc/my.cnf
[client]
default-character-set=utf8
[mysqld]
#设置mysql的安装目录
basedir =/usr/local/mysql-5.7.36
#设置mysql数据库的数据存放目录
datadir = /usr/local/mysql-5.7.36/data/mysql
#设置端口
port = 3306
socket = /tmp/mysql.sock
#设置字符集
character-set-server=utf8
character_set_server=utf8mb4
#日志存放目录
log-error = /usr/local/mysql-5.7.36/data/mysql/mysqld.log
pid-file = /usr/local/mysql-5.7.36/data/mysql/mysqld.pid
#允许时间类型的数据为零(去掉NO_ZERO_IN_DATE,NO_ZERO_DATE)
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_AUTO_VALUE_ON_ZERO
#ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
default-storage-engine=INNODB
innodb_default_row_format=DYNAMIC
innodb_large_prefix=ON
innodb_file_format=Barracuda
innodb_log_file_size=2G
transaction-isolation=READ-COMMITTED
八、开启服务
#将mysql加入服务
cp /usr/local/mysql-5.7.36/support-files/mysql.server /etc/init.d/mysql
#开机自启
chkconfig mysql on
#启动mysql服务
service mysql start
九、设置密码
# 登录(由于/etc/my.cnf中设置了取消密码验证,所以此处密码任意)
/usr/local/mysql-5.7.36/bin/mysql -u root -p
输入密码:TyAtzkD,#4K6
# 操作mysql数据库
>use mysql;
# 修改密码
>set password=password("root123456");
>flush privileges;
>exit;
十、连接数据库的时候会报错
报错样例
Host ‘192.168.x.1‘ is not allowed to connect to this MySQL server
解决方案:
mysql>update user set host = ‘%’ where user = ‘root’;
mysql>flush privileges;
mysql>select host, user from user;
总结
姨妈型文档,全网唯一。希望可以解决你遇到的问题。