对于经常用windows服务器的我来说,用Linux服务器感到压力山大,但是又压力才有动力,记录一下本人再CentOS下安装mysql遇到的坑,望广大同行介以参考,引以为戒;步骤如下: 检查是否安装过mysql:rpm -qa | grep -i mysql;如安装过通过yum -y remove卸载 官网下载安装包:https://dev.mysql.com/downloads/mysql/ 利用xftp将压缩包上传到:/usr/local下 进入Xshell连接服务器,通过:cd user/local进入压缩文件目录;输入:dir查看文件是否存在,输入:sudo tar -zxvf+文件名,解压文件 登录xftp,重命名解压的文件,改为mysql 添加用户组:groupadd mysql 添加用户mysql 到用户组mysql:useradd -g mysql mysql 进入安装mysql软件目录:cd /usr/local/mysql 改当前目录拥有者为mysql用户:chown -R mysql:mysql ./ 安装数据库:./scripts/mysql_install_db --user=mysql 修改当前目录拥有者为root用户: chown -R root:root ./ 修改当前data目录拥有者为mysql用户:chown -R mysql:mysql data 数据库安装完毕,添加开机启动:cp support-files/mysql.server /etc/init.d/mysql 启动mysql服务:执行命令service mysql start,执行命令:ps -ef|grep mysql 看到mysql服务说明启动成功 修改mysql的root用户密码:./bin/mysqladmin -u root password ‘密码’; 检查是否安装成功:mysql -uroot -p 16-1:提示输入密码:输入设置的密码(终端看不到输入结果不用管),回车 16-2:出现:Welcome to the MySQL monitor代表成功,输入 use mysql;出现: Database changed代表成功 16-3:输入一条sql语句测试:select * from user;出现结果代表成功(必须输入分号 切记) 16-3:输入 \q,推出mysql编辑,出现Bye代表成功 至此mysql已经安装完成,亲测可用,接下来尝试本地链接服务器数据库 进入输入sql语句的地方(即:上一步的16-1/16-2)输入:GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY 密码 WITH GRANT OPTION;对所有账户开放权限 使命令及时生效:FLUSH PRIVILEGES; 查询用户,SELECT DISTINCT CONCAT(‘User: ‘’’,user,’’’@’’’,host,’’’;’) AS query FROM mysql.user; 出现:User: ‘root’@’%’; 代表成功 输入\q推出MySQL编辑 查看防火墙状态:firewall-cmd --state 停止firewall:systemctl stop firewalld.service 禁止firewall开机启动:systemctl disable firewalld.service 至此服务器工作已经完成,本地用第三方工具链接服务器(本人用的SQLyog) 输入用户名、密码、服务器ip点击连接即可; 常见错误排除及注意事项: 输入sql语句完成后必须加英文版分号 进行用户登录时出现:ERROR 1044 (42000): Access denied for user ‘’@‘localhost’ to database ‘mysql’,代表存在用户名为空的账户即匿名账户,导致登录的时候是虽然用的是root,但实际是匿名登录的。 解决方法: 2-1.关闭mysql:service mysqld stop 2-2.屏蔽权限:mysqld_safe --skip-grant-table 2-3.进入mysql命令行删除用户为空的数据: delete from user where USER=’’; 2-4.及时生效:FLUSH PRIVILEGES; 忘记密码的情况处理: 解决方法: 3-1:利用xftp进入mysql安装路径(/usr/local/mysql),找到my.cnf文件编辑 3-2:在[mysqld]下添加: skip-grant-tables 3-3:进入Xshell,重启mysql服务 3-4:输入:mysql -uroot -p,出现输入密码提示,不用管直接回车 3-5:选择数据库:use mysql; 3-6:重设密码:UPDATE user SET PASSORD =password(“passwd”) WHERE USER= ‘root’; 3-7:即时生效:flush privileges; 3-8:退出:\q 3-8:删除添加的skip-grant-tables,并重启mysql服务 (责任编辑:IT) |