linux安装mysql

本文详细介绍了在CentOS7上安装MySQL 5.7的步骤,包括下载、上传、解压、创建用户、初始化数据库、设置权限、修改配置文件、安装证书、启动数据库、修改root用户密码以及设置开机启动。还提到了解决由于ONLY_FULL_GROUP_BY模式导致的SQL错误的方法。
摘要由CSDN通过智能技术生成

1.准备安装软件

下载链接:http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

此链接真实有效,如果你去官网查看下载版本是很难找到的。下载下来就上传到服务器上 ,这里使用的linux版本是Centos7的。

2.上传都/user/local/目录下。

解压:tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

文件映射: ln -s mysql-5.7.22-linux-glibc2.12-x86_64 mysql

注意:

1:ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;

2:ln的链接又软链接 和硬链接两种,软链接就是ln -s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。如果你用ls察看一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的文件,用ls -l命令去察看,就可以看到显示的link的路径了。

3:创建mysql用户,用于启动mysql的。

[root@iZwz98almviffnifazuznsZ local]# groupadd mysql

[root@iZwz98almviffnifazuznsZ local]# useradd -r -g mysql -s /bin/false mysql

[root@iZwz98almviffnifazuznsZ local]# chown -R mysql:mysql mysql   (一定要注意设置权限,不然启动时会报错)

4:进入创建出来的mysql文件夹中初始化数据库

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

记住这个初始密码,登录的时候有用到。

5:安装证书:bin/mysql_ssl_rsa_setup  --datadir=/usr/local/mysql/data

6.编辑my.conf文件 

vi  /etc/my.cnf

[mysqld]

basedir=/usr/local/mysql/

datadir=/usr/local/mysql/data/

character_set_server = utf8

symbolic-links=0

[mysqld_safe]

log-error=/var/log/mariadb/mariadb.log

pid-file=/var/run/mariadb/mariadb.pid

注意:log-error和pid-file这里指向的文件需要手动创建否则启动会报错

创建命令:

mkdir /var/log/mariadb

mkdir /var/run/mariadb

chown mysql -R /var/run/mariadb

编辑好my.conf文件直接去bin目录下运行:./mysqld_safe --user=mysql &

如果没有报错,查看一个3306端口是否启动。如图所示说明数据库配置正常。

7.登录数据库,修改root用户密码

mysql -uroot -p

注意:这里会出现要么成功执行输入密码即可。如果出现 -bash: mysql: command not found。

还需要执行一步代码:ln -s /usr/local/mysql/bin/mysql /usr/bin

设置密码:依次执行一下代码即可

set password=password("root");

use mysql

update  user  set host='%' where user='root';(设置远程登录用户)

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY '......' WITH GRANT OPTION;

FLUSH PRIVILEGES; 

8.设置开机自动启动

cp mysql.server /etc/init.d/mysql

chmod +x /etc/init.d/mysql

chkconfig --add mysql

chkconfig --list mysql 

启动命令:

 service mysql stop

 service mysql start

代码层面问题:

使用这个数据库可能会导致sql报错:

Expression #2of SELECT list isnot in GROUP BY clause and contains
nonaggregated column ‘sss.month_id’ which is not functionally
dependent on columns inGROUP BY clause; thisis incompatible with
sql_mode=only_full_group_by

   这说明sql语句里面使用group by 导致的,5.7以上的数据库都把ONLY_FULL_GROUP_BY设置成默认的。只需要重新设置一下即可:

Set @@global.sql_mode=’STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,

NO_ENGINE_SUBSTITUTION’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值