Mysql 安装
下载
删除mysql
部分系统中有一个默认得mysql5.5 的一个版本需要先删除在安装
# 查看是否有mysql
yum list installed | grep mysql
# 存在则执行一下命令删除
yum -y remove mysql-libs.x86_64 (mysql-libs.x86_64 为查看到的内容)
安装
-
安装 wget 命令
yum install wget -y
-
下载 mysql
我们这里使用的是 wget 命令直接下载
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz
-
查看系统自带的 Mariadb并卸载
# 查看你 rpm -qa | grep mariadb # 卸载 rpm -e --nodeps mariadb-libs(查出来的名字)
-
删除 /etc 目录下的 my.cnf(有就删除)
rm -f /etc/my.cnf
-
检查 mysql 是否存在,检查mysql的用户组和用户是否存在,如无则创建
rpm -qa | grep mysql cat /etc/group | grep mysql cat /etc/passwd | grep mysql # 创建用户组 groupadd mysql # 创建用户 useradd -g mysql mysql # 设置密码 passwd mysql
-
解压缩
tar -zxvf mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz
-
将文件移动到
/usr/local/mysql
中mv mysql-5.7.41-linux-glibc2.12-x86_64 /usr/local/mysql
-
将解压后的 mysql 的安装包更改用户和组为mysql
cd /usr/local/mysql chown -R mysql:mysql .
-
在mysql文件夹下创建data目录,并修改用户和组都的权限为mysql
cd /usr/local/mysql mkdir data chown -R mysql:mysql data
-
在 /etc 下创建my.cnf文件
vim /etc/my.cnf
内容:
[mysqld] # set mysql server port port = 3306 #默认是3306 # set mysql install base dir basedir=/usr/local/mysql # set the data store dir datadir=/usr/local/mysql/data # set the number of allow max connnection max_connections=200 # set server charactre default encoding character-set-server=utf8 # the storage enginedefault-storage-engine=INNODB lower_case_table_names=1 max_allowed_packet=16M explicit_defaults_for_timestamp=true [mysql.server] user=mysql basedir=/usr/local/mysql
修改my.cnf权限
cd /etc/ chown -R mysql:mysql my.cnf chown 777 my.cnf
-
进入mysql文件夹安装 mysql
cd /usr/local/mysql/ # 这里推荐在5.7之前使用(但是我在安装5.7时确可以用) ./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ # 5.7之后上面执行报错可执行这个进行初始化 ./bin/mysqld --initialize --user=mysql --basedir=usr/local/mysql/ --datadir=/usr/local/mysql/data/ # 5.7之后出现错误 # ./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory # 需要先安装一个libaio yum install -y libaio # 安装完成后再执行上面命令 # 切换 root 账户 su root cp ./support-files/mysql.server /etc/init.d/mysqld chmod a+x /etc/init.d/mysqld
-
配置环境变量
vim /etc/profile # 内容 export MYSQL_HOME=/usr/local/mysql export PATH=$MYSQL_HONE/bin:$PATH # 刷新资源 source /etc/profile
-
启动mysql
# 启动 service mysqld start # 状态 service mysqld status # 停止 service mysqld stop
-
进入mysql
# 获取mysql初始密码: #cat /root/.mysql_secret # 登录 # mysql -u root -p (输入刚才查出的密码) # 更改密码 mysql> set PASSWORD = PASSWORD('xxxx'); # 刷新保存设置 mysql> flush privileges;
如果初始化密码输入一直错误
-
先停止 mysql 服务
service mysqld stop
-
使用安全模式登陆,跳过密码验证
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
-
登录
mysql -uroot mysql
-
修改密码(‘123456’ 就是你想要设置的密码)
update user set authentication_string = password('123456') where user = 'root' and Host = 'localhost';
-
刷新权限
flush privileges;
-
随后使用你修改的密码再次登录修改密码
# 更改密码 mysql> set PASSWORD = PASSWORD('xxxx'); # 刷新保存设置 mysql> flush privileges;
随后正常登录即可;
远程连接
出现远程连接无法连接的情况。
-
查看是否开启远程连接
use mysql; select host,user from user;
root 账户必须是 % 如果不是可以执行一下命令
use mysql; update `user` set `host` = '%' where `user` = 'root';
-
is not allowed to connect to this MySQL server
# 你想myuser使用mypassword从任何主机连接到mysql服务器的话 GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; FLUSH PRIVILEGES; # 如果你想允许用户myuser从ip为192.168.204.128的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码 GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.204.128' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; FLUSH PRIVILEGES;
-
查看防火墙是否关闭 / 是否开放端口
# 关闭防火墙 systemctl stop firewalld # 或 # 打开端口 firewall-cmd --zone=public --add-port=3306/tcp --permanent # 重启防火墙 firewall-cmd --reload
参考地址:
参考地址:
- 安装教程参考
- 重置密码