centos7怎样安装mysql服务器
本人博客供参考
下载mysql源安装包shell> wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
安装mysql源shell> yum localinstall mysql57-community-release-el7-8.noarch.rpm
检查mysql源是否安装成功
yum repolist enabled | grep “mysql.-community.”
安装MySQL
yum install mysql-community-server
启动MySQL服务
shell> systemctl start mysqld
查看MySQL的启动状态
shell> systemctl status mysqld
开机启动
shell> systemctl enable mysqld
shell> systemctl daemon-reload
修改root本地登录密码
mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:
shell> grep ‘temporary password’ /var/log/mysqld.log
shell> mysql -uroot -p
mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘MyNewPass4!’;
或者:
mysql> set password for ‘root’@’localhost’=password(‘MyNewPass4!’);
注意:mysql5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误
添加远程登录用户
默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,我添加一个新的帐户:
mysql> GRANT ALL PRIVILEGES ON . TO ‘yangxin’@’%’ IDENTIFIED BY ‘Yangxin0917!’ WITH GRANT OPTION;
以上部分个人实践过,以下内容待实践
数据库存emoji 表情问题
mysql> SHOW VARIABLES WHERE Variable_name LIKE ‘character_set_%’ OR Variable_name LIKE ‘collation%’;
+————————–+——————-+
| Variable_name | Value |
+————————–+——————-+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| collation_connection | utf8_general_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+————————–+——————-+
10 rows in set (0.02 sec)
可以看到我的mysql版本是5.7的,utf8mb4有一个使用限制,mysql版本必须是5.5以上,大家需要注意,我目前用的ubuntu系统是16.04的。当前mysql的字符集配置如上表,我们的目的是更改成utf8mb4。
3.找到mysql的配置文件,可用命令
sudo find / -name my.cnf
我的配置文件位置如下,个别的位置有所不同
/etc/mysql/mysql.conf.d/mysqld.cnf
4.修改配置文件
在原文中添加以下内容:
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect=’SET NAMES utf8mb4’
原文件中无“[client]”和“[mysql]”,需要手动添加上。
……
Here is entries for some specific programs
The following values assume you have at least 32M ram
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
#
* Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect=’SET NAMES utf8mb4’
#
Instead of skip-networking the default is now to listen only on
……
5.重启mysql服务
sudo service mysql restart
6.查看结果
mysql> SHOW VARIABLES WHERE Variable_name LIKE ‘character_set_%’ OR Variable_name LIKE ‘collation%’;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect…
Connection id: 3
Current database: * NONE *
+————————–+——————–+
| Variable_name | Value |
+————————–+——————–+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| collation_connection | utf8mb4_unicode_ci |
| collation_database | utf8mb4_unicode_ci |
| collation_server | utf8mb4_unicode_ci |
+————————–+——————–+
10 rows in set (0.00 sec)
二,下载完后解压缩并放到安装文件夹下:
1
2
3
4
5
6
7
MySQL-client-5.6.24-1.linux_glibc2.5.x86_64.rpm
MySQL-devel-5.6.24-1.linux_glibc2.5.x86_64.rpm
MySQL-embedded-5.6.24-1.linux_glibc2.5.x86_64.rpm
MySQL-server-5.6.24-1.linux_glibc2.5.x86_64.rpm
MySQL-shared-5.6.24-1.linux_glibc2.5.x86_64.rpm
MySQL-shared-compat-5.6.24-1.linux_glibc2.5.x86_64.rpm
MySQL-test-5.6.24-1.linux_glibc2.5.x86_64.rpm
这里面最重要的是:
1
2
MySQL-client-5.6.24-1.linux_glibc2.5.x86_64.rpm
MySQL-server-5.6.24-1.linux_glibc2.5.x86_64.rpm
三,检查安装
在安装MySQL之前,先检查CentOS系统中是否已经安装了一个MySQL,如果已经安装先卸载,不然会导致安装新的MySQL失败。
rpm -qa | grep mysql --查看系统之前是否已安装MySQL。
mysql-libs-5.1.47-4.el6.i686 显示结果说明 CentOS6.0系统自带了一个MySQL,我们需要删除这个老版本,用root用户执行下面语句
rpm -e --nodeps mysql-libs-5.1.47-4.el6.i686 (不同操作系统可能不一样)
先切换到"root"用户下,然后执行删除语句,删除之后,我们再次查看,发现已经成功删除了CentOS6.0自带的旧MySQL版本。
在删除MySQL的rpm后,还要进行一些扫尾操作,网上有两种操作。(备注:我在这里两种都没有用到,发现系统中并没有其他残余的MySQL信息。)
第一种善后处理:使用下面命令进行处理。
rm -rf /var/lib/mysql*
rm -rf /usr/share/mysql*
另一种善后处理:卸载后 /var/lib/mysql 中的 /etc/my.cnf 会重命名为 my.cnf.rpmsave,/var/log/mysqld.log 会重命名为 /var/log/mysqld.log.rpmsave,如果确定没用后就手工删除。
四,安装mysql server
rpm -ivhMySQL-server-5.6.24-1.linux_glibc2.5.x86_64.rpm
出现:Preparing...########################################### [100%]
MySQL-server########################################### [100%]
...............(后面的我省略了)
如果提示:要安装perl的模块,执行:yum install -y perl-Module-Install.noarch;
如果有问题,重新安装之前先移除:yum -y remove MySQL-server*
五,检测 MySQL 3306 端口是否安打开。测试是否成功可运行 netstat 看 MySQL 端口是否打开,如打开表示服务已经 启动,安装 成功。MySQL 默认的端口是3306。
[root@hadoop Mysql]# netstat -nat
如果没有3306端口,启动mysql服务: servicemysql start
六,安装客户端
[root@hadoop Mysql]# rpm -ivhMySQL-client-5.6.22-1.linux_glibc2.5.x86_64.rpm
Preparing... ########################################### [100%]
1:MySQL-client ^C########################################### [100%] 安装完成
七,修改mysql连接密码
在安装mysql server的过程中,它会随机生成一个默认的密码,位置在: /root/.mysql_secret ,打开这个文件之后就可以看到随机的密码了。
修改方式:在linux中运行:mysqladmin -u root -ppassword "新密码"。执行这个命令后,会让你输入旧密码,输入成功之后就把密码修改好了。
八,进入mysql :mysql -uroot -p新密码就可以了。
九,远程连接
如果直接连接,会报:host ... is notallowed to connect to this MySql server
1,进入mysql数据库:use mysql;
2,执行:update user sethost = '%' where user = 'root';
3,可能会报错:ERROR 1062(23000): Duplicate entry '%-root' for key 'PRIMARY',这个不用管它
4,flush privileges;(提交修改,这个绝对不能少,要不然不会生效。切记,我之前就是忘记了,死活连接不上)
十,需要注意的问题
1,卸载MariaDB
如果直接点击rpm包安装会得到错误提示,可能会是很多冲突。因为CentOS的默认数据库已经不再是MySQL了,而是MariaDB,为什么呢?
MariaDB
数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将
MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为
MySQL的代替品。
2,启动错误:
Starting MySQL.... ERROR! The server quitwithout updating PID file (/var/lib/mysql/bogon.pid).
打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器.如果还是不可以,需要卸载重新安装。
A,rpm –qa|grep MySQL查看安装的mysql包
B,rpm –e 安装包
C,find / -name mysql查看mysql的目录,全部删除;
D,删除/etc/my.cnf
方式二:源码编译安装,这个慢,编译一次下来少说半小时,而且代码复杂,不推荐新手尝试,但是最稳定
方式三:没用过
方式四:一键安装包,有些人会在sh里面留后门,有些人写出来的会有bug,被坑过好几次,都是因为里面的判断不完整,导致就差最后几步就直接没有了,用这个的话新手应当用amh之类比较多人用的
首先要确保电脑正常上网,才能通过yum安装。
2
执行yum install mysql进行安装。并在提示时输入y。
然后系统会自动寻找安装包,并进行安装。下图显示已成功安装完毕。
安装完毕后,尝试启动数据库。
系统提示找不到这个服务。再次看一下安装的包:
#rpm -qa |grep mysql
命令返回空,说明刚才没有安装成功。只好再次安装了。不过这次我们在命令后面加上*号。
看图,需要安装的包还真多!安装完成后,却发现只安装了JDBC和ODBC驱动。
我们在软件库中搜一下带mysql关键字的软件包:
返回的结果显示,软件库中根本就没有mysql软件包。这个时候,迷茫的开始查资料,资料显示在Centos7中用MariaDB代替了mysql数据库。好吧!那我们来安装MariaDB数据库吧!
操做方法同上,只不过在命令行里,把mysql改成了mariadb。
安装包一共59M
安装完成。
查看安装之后的包:
根据资料,mariadb数据库的启动命令是:
systemctl start mariadb #启动MariaDB
systemctl stop mariadb #停止MariaDB
systemctl restart mariadb #重启MariaDB
systemctl enable mariadb #设置开机启动
我执行以上命令,没有任何返回值。看来得研究一下mariadb数据了。
YUM安装MySQL服务器
[root@lamp ~]# yum install mysql mysql-server mysql-devel
启动mysql服务:/etc/init.d/mysqld start
设置mysql密码:
直接使用”mysql”进入数据库模式,
mysql> USE mysql;
mysql> UPDATE user SET Password=PASSWORD(‘newpassword’) WHERE user=’root';
mysql> FLUSH PRIVILEGES;
广告 您可能关注的内容 |