Linux服务器安装MySQL
-
安装数据库一定是第一步,(CentOS7带有MariaDB而不是MySQL,MariaDB和MySQL一样也是开源的数据库)
1)查看有没有安装过数据库:
yum list installed mysql* rpm -qa | grep mysql*
2)查看有没有安装包:
yum list mysql*
移除原来Linux自带数据库,以免影响后续安装
yum remove mysql-libs
清理数据源
yum clean dbcache
3)执行安装命令
// 5.6.45版本
wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
rpm -ivh mysql-community-release-el6-5.noarch.rpm
或
rpm -ivh MySQL-client-5.6.42-1.el7.x86_64.rpm
rpm -ivh MySQL-server-5.6.42-1.el7.x86_64.rpm
或直接执行安装命令
yum -y install mysql-server
// 5.7版本
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
”Complete” ok 第一步 mysql 安装成功!
- 启动数据库:安装完毕,执行命令
service mysqld start
看到Starting mysqld: 为 确认/ok状态,代表mysql数据库启动成功。
查看 MySQL 运行状态:
service mysqld status
验证 MySQL 安装
使用 mysqladmin 工具来获取服务器状态:
(在成功安装 MySQL 后,一些基础表会被初始化,在服务器启动后,你可以通过简单的测试来验证 MySQL 是否工作正常。)
mysqladmin --version
- 登录数据库:
mysql -u root -p
回车后输入密码(mysql的默认用户root默认密码为空)
- 查看数据库 :
mysql> show databases;
- 登录成功切换到mysql数据库
mysql> use mysql;
-
新建用户
1)新建用户远程连接mysql数据库:
允许任何ip地址的电脑用 admin/root 帐户和密码 (123456) 来访问这个 mysql server。
【注】admin账户不一定要存在,%表示允许任何ip地址。
mysql> grant all on *.* to admin@'%' identified by '123456' with grant option;
刷新
flush privileges;
2)支持root用户允许远程连接mysql数据库
新建root用户,并给此用户赋予数据库和及所有对象的操作权限
(这个赋权语句的 % 代表之间任意主机连接到 mysql服务器,这样的话 navicat这个客户肯定没有问题)
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
mysql> Flush privileges;
使用ALTER修改root用户密码,方法为 ALTER user ‘root’@’localhost’ IDENTIFIED BY ‘新密码’.
如果是 localhost root,则只能本地访问。如果是 % root则可以远程访问。
修改密码,是否为localhost用户决定了这里的修改密码的用户,根据自己的用户更改
ALTER user 'root'@'localhost' IDENTIFIED BY '123456';
alter user 'root'@'%' identified by '123456';
如果报错:
mysql Error: Column count of mysql.user is wrong. Expected 45, found 43. The table is probabl
因为版本不足导致的,解决方法很简单,把版本升级就ok了
mysql_upgrade -u root -p
如果报错:Your password does not satisfy the current policy requirements
说明密码不够复杂
- 查看系统用户
mysql> use mysql;
mysql> select user, host from user;
7.退出命令是:
mysql> Ctrl + C
mysql> exit!
8.设置mysql开机自启动 (使用vi 编辑/etc/rc.local)
vi /etc/rc.local
在文件末尾加上
service mysqld start
使用客户端链接一下数据库吧!
要是没有连接成功,检查一下防火墙:
具体操作可以看这里 防火墙设置与配置开放端口
ok!数据库部分安装至此已是结束!
问题基本不是很大,如果出现其他bug,可以在网上找找,我这没出现问题,也不知道大家的问题会是什么!欢迎留言评论大家一起探讨!
2020-07-03 更新bug
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
- 因为随着MySQL版本更新,在MySQL5.7版本之后对group by进行了优化,他默认启动改进之后的版本,启动了ONLY_FULL_GROUP_BY模式。
- 官方解释:ONLY_FULL_GROUP_BY是MySQL数据库提供的一个sql_mode,通过这个sql_mode来保证SQL语句“分组求最值”合法性的检查。这种模式采用了与Oracle、DB2等数据库的处理方式。即不允许select target list中出现语义不明确的列。
1:只要有聚合函数sum(),count(),max(),avg()等函数就需要用到group by,否则就会报上面的错误。
2:group by id(id是主键)的时候,select什么都没有问题,包括有聚合函数。
3:group by role(非主键)的时候,select只能是聚合函数和role(group by的字段),否则报错
解决方案:
修改配置文件my.ini / my.cnf 中 sql_mode
MySQL配置文件在Windows下叫 my.ini
,如果没有找到my.ini文件。
去系统的隐藏文件夹查看,在某个盘下输入%ProgramData%然后搜索MySQL的my.ini文件。
在MySQL的安装根目录下;在Linux下叫 my.cnf
;
一般该文件位于 /etc/my.cnf
然后重启MySQL服务:service mysqld restart
【注】服务重启之后不一定立即生效,尤其是你买的服务器,存在延时。