CentOS7默认数据库是mariadb,配置等用着不习惯,因此决定改成mysql,但是CentOS7的yum源中默认好像是没有mysql的。为了解决这个问题,我们要先下载mysql的repo源。
1.下载mysql的repo源
$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
2.安装mysql-community-release-el7-5.noarch.rpm包
$ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。
3.安装mysql
$ sudo yum install mysql-server
根据提示安装就可以了,不过安装完成后没有密码,需要重置密码
4.重置mysql密码
$ mysql -u root
登录时有可能报这样的错:ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2),原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户:
$ sudo chown -R root:root /var/lib/mysql
重启mysql服务
$ service mysqld restart
设置登录密码:
$vi /etc/my.cnf
最后一行加入:skip-grant-tables
重启mysql
$service mysqld restart
直接回车进入mysql控制台
$ mysql -u root
切换数据库
mysql > use mysql;
更新root密码
mysql > update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';
重启数据库
$service mysqld restart
登录数据
$ mysql -u root -p123456
在切换数据库的时候需要再改一下密码
mysql> use mysql;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
更新一下密码
mysql> SET PASSWORD = PASSWORD('123456');
可以切换数据库了
mysql> use mysql;
插入新用户
mysql>create user 'test'@'%' identified by '456789';
注:密码的复杂度与validate_password_policy的值有关,如果密码够复杂请忽略本段。
validate_password_policy有以下取值:
PolicyTests Performed
0orLOWLength
1orMEDIUMLength; numeric, lowercase/uppercase, and special characters
2orSTRONGLength; numeric, lowercase/uppercase, and special characters; dictionary file
默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。
必须修改两个全局参数:
首先,修改validate_password_policy参数的值
mysql>setglobal validate_password_policy=0;
Query OK,0rows affected (0.00sec)
这样,判断密码的标准就基于密码的长度了。这个由validate_password_length参数来决定。
设置用户权限
mysql >GRANT ALL ON *.* TO 'test'@'%';
如果是阿里云服务器需要在安全组打开3306端口,然后就可以连接了
mysql > exit;
打完,收工