下载mysql-xxx.tar.gz文件
将下载的文件通过ftp软件传到linux下/usr/local/software
解压并重命名
cd /usr/local/software
tar -zxvf mysql-xxx.tar.gz
mv mysql-xxx mysql
centos7默认安装mariadb,它是mysql的一个分支,但要安装mysql需要先删除它
检测是否安装过mariadb
rpm -qa |grep mariadb
删除mariadb
rpm -e 上面查出来的文件夹名
rpm -e --nodeps 上面查出来的文件夹名 强制性
检测是否安装过mysql
rpm -qa |grep mysql
删除mysql
rpm -e 上面查出来的文件夹名
rpm -e --nodeps 上面查出来的文件夹名 强制性
添加组和用户
groupadd mysql
useradd -g mysql mysql
设置用户权限
cd /usr/local/software/mysql
chown -R root . 把当前所有文件的拥有者改成root
chown -R mysql data 把data文件夹的拥有者改成mysql用户
设置组权限
cd /usr/local/software/mysql
chgrp -R mysql . 把当前所有文件设置成属于mysql组
修改mysql配置文件
cd /usr/local/software/mysql
cp support-files/my-default.cnf /etc/my.cnf ##注:如果/etc/my.cnf文件存在,则按y 回车覆盖。
vim /etc/my.cnf
[mysqld]中添加:
basedir = /usr/local/software/mysql
datadir = /usr/local/software/mysql/data
port = 3306
server_id = 1
初始化mysql
cd /usr/local/software/mysql
scripts/mysql_install_db --user=mysql --basedir=/usr/local/software/mysql --datadir=/usr/local/software/mysql/data
出现错误:
FATAL ERROR: please install the following Perl modules before executing
Data::Dumper
解决方法 :安装autoconf库
输入命令
yum -y install autoconf //此包安装时会安装Data:Dumper模块
安装完成后再次执行上面初始化命令。
出现错误:
error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决方法:
yum -y install libaio
安装完成后再次执行上面初始化命令。
添加开机启动服务脚本
cd /usr/local/software/mysql
cp support-files/mysql.server /etc/init.d/mysqld
添加开机自启
systemctl enable mysqld
查看服务列表
chkconfig --list
查看服务状态
systemctl status mysqld
启动
systemctl start mysqld
停止
systemctl stop mysqld
重启
systemctl restart mysqld
添加环境变量
vim /etc/profile
export PATH=/usr/local/software/mysql/bin:/usr/local/software/mysql/lib:$PATH
让环境变量配置生效
source /etc/profile
登录mysql,修改密码
mysql -uroot -p
提示输入密码,默认密码为空,直接回车即可
select user,host,password from mysql.user;
update mysql.user set password = PASSWORD('123456') where user = 'root';
删除空用户(密码为空)
drop user ''@localhost;
select user,host,password from mysql.user;
update mysql.user set host='%' where user='root' and host='localhost';
flush privileges;
如果改完密码后无法登录 ??
systemctl stop mysqld
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
systemctl start mysqld
然后再登录试试
mysqladmin方式修改密码:
1.例如你的 root用户现在没有密码,你希望的密码修改为123456,那么命令是:
mysqladmin -u root password 123456
2.如果你的root现在有密码了(123456),那么修改密码为abcdef的命令是:
mysqladmin -u root -p password abcdef
注意,命令回车后会问你旧密码,输入旧密码123456之后命令完成,密码修改成功。
3.如果你的root现在有密码了(123456),那么修改密码为abcdef的命令是:
mysqladmin -u root -p123456 password abcdef (注意-p 不要和后面的密码分开写,要写在一起,不然会出错)
开启远程连接
1.确定服务器上的防火墙没有阻止 3306 端口,否则需开启这个防火墙端口
查看开放端口
firewall-cmd --zone=public --list-ports
开放指定端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
2.登录mysql 创建用户zns密码为zns123456 设置权限即可
grant all privileges on *.* to 'zns'@'%' identified by 'zns123456' with grant option;
可能提示ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables opt
执行
flush privileges;
3 重启服务器
来源:oschina
链接:https://my.oschina.net/u/4331940/blog/4108221