【MySQL】el7环境安装MySQL步骤以及可能遇到的问题
-
下载Linux_Generic下mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz 创建安装目录、数据目录、用户和组 groupadd mysql useradd -g mysql mysql mkdir /usr/local/mysql # 数据目录 mkdir /var/lib/mysql 解压并移动安装文件到安装目录 tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.22-linux-glibc2.12-x86_64/* /usr/local/mysql 初始化数据 # 旧版本使用 bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/var/lib/mysql/ # 报错使用mysqld bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/var/lib/mysql/ 修改用户和属组 chown -R mysql:mysql /usr/local/mysql chown -R mysql:mysql /var/lib/mysql 创建my.cnf # 配置一些基础项 [mysqld] datadir=/var/lib/mysql socket=/tmp/mysql.sock log-error=mysqld.log pid-file=mysqld.pid character-set-server=utf8 server_id=2 log_bin=mysql-bin binlog_format=ROW log_slave_updates=1 [mysqld_safe] socket=/tmp/mysql.sock [client] socket=/tmp/mysql.sock 修改移动server文件启动数据库 打开support-files/mysql.server 修改其中变量 basedir=/usr/local/mysql datadir=/var/lib/mysql cp -af ./support-files/mysql.server /etc/init.d/mysqld /etc/init.d/mysqld start 创建软连接 ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/mysqladmin ln -s /usr/local/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog ln -s /usr/local/mysql/bin/mysqld_safe /usr/bin/mysqld_safe ln -s /usr/local/mysql/bin/mysqld /usr/sbin/mysqld 登录数据库修改密码 初始化数据的时候会有密码打印 如果没有 cat /root/.mysql_secret 或者 grep "password" /var/log/mysqld.log 获取到密码登录数据库修改密码 set password=password(your password); 如果修改失败 ALTER USER root@% IDENTIFIED BY your password;
其他:
-
实在找不到密码或者忘记密码 在my.cnf的[mysqld]下添加参数免密登录 skip-grant-tables 登录后修改密码 如果修改密码失败(特别是mysql8.0) use mysql; update user set authentication_string= where user=root; 将root密码重置为空,将免密登录的skip-grant-tables注释掉,重启数据库 再登录修改密码: ALTER USER root@% IDENTIFIED BY your password; 或者 update mysql.user set authentication_string=password("your password") where user="root"; 也可以 /usr/bin/mysqladmin -u root password new password 可能 SET PASSWORD FOR root@% = PASSWORD(your password); 如果root无法远程连接数据库 GRANT ALL PRIVILEGES ON *.* TO root@% IDENTIFIED BY eisoo.com123 WITH GRANT OPTION; FLUSH PRIVILEGES; 如果上述步骤报错了: CREATE USER root@% IDENTIFIED BY your password; GRANT ALL ON *.* TO root@%; FLUSH PRIVILEGES; 其他账户同理 不想设置太高强度的密码 set global validate_password_policy=LOW; set global validate_password_length=1; 查看root账户权限 SHOW GRANTS FOR root@%; binlog日志太多了,删除日志 PURGE BINARY LOGS TO mysql-bin.000005
下一篇:
pivot的用法,一看就会