centos安装 mysql

时间:2023-03-08 17:11:54

centos安装 mysql

1. 下载mysql
mysql被oracle收购后现在退出了企业版和社区版本,社区版本是开源的,企业版是收费的。
社区版可以下载源码也可以下载二进制文件包。源码安装比较麻烦,有很多依赖,如果没有特殊的要求可以直接下载二进制包安装。
我是下载的是社区版 MySQL Community Server ,选择的系统选项为 Linux - Generic 64位 版本5.6.32

2. 解压包
tar xzvf mysql-5.6.32-linux-glibc2.5-x86_64.tar.gz

3. 复制目录
复制解压后的mysql目录到系统的本地软件目录:
执行命令:cp -r mysql-5.6.32-linux-glibc2.5-x86_64 /usr/local/mysql

4. 添加系统mysql组和mysql用户:
执行命令:groupadd mysql和useradd -r -g mysql -s /bin/false mysql

5. 安装数据库:
进入安装mysql软件目录:执行命令 cd /usr/local/mysql
修改当前目录拥有者为mysql用户:执行命令 chown -R mysql:mysql /usr/local/mysql
初始化数据库(5.7.6之后版本执行如下命令):
bin/mysqld --initialize --user=mysql --datadir=/var/lib/mysql/data
bin/mysql_ssl_rsa_setup
(5.7.6之前的版本执行如下命令)
scripts/mysql_install_db --user=mysql

执行后,默认的数据文件放置在 /var/lib/mysql下面
修改当前目录拥有者为root用户:执行命令 chown -R root:mysql /usr/local/mysql
修改当前data目录拥有者为mysql用户:执行命令 chown -R mysql:mysql /var/lib/mysql/data
到此数据库安装完毕

6. 启动mysql服务和添加开机启动mysql服务:
默认的mysql配置文件为/etc/my.cnf,如果有修改默认路径,请启动前修改my.cnf配置文件,不然可能出现启动报错。
添加开机启动:执行命令cp support-files/mysql.server /etc/init.d/mysql,把启动脚本放到开机初始化目录
启动mysql服务:执行命令service mysql start
执行命令:ps -ef|grep mysql 看到mysql服务说明启动成功

7. 把mysql客户端放到默认路径:
ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql
注意:建议使用软链过去,不要直接包文件复制,便于系统安装多个版本的mysql

8. 修改mysql的root用户密码,5.7之前的版本root初始密码为空的,5.7之后的默认有一个随机的密码,且密码存放的字段发生了改变,user表中没有password字段了:
5.7.6之前版本执行命令:./bin/mysqladmin -u root password '密码'

9.这时虽然可以使用了,但是如果想远程图形客户端访问还需要设置访问权限,5.7和之前的版本也是不一样的,需要注意。
登录:
mysql -uroot -p
进入mysql系统数据库:
use mysql;
创建用户:
CREATE USER 'testuser'@'%' IDENTIFIED BY 'password';

说明:testuser - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.
例子: CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '';
CREATE USER 'pig'@'%';

设置权限:
命令:GRANT privileges ON databasename.tablename TO 'username'@'host'

说明: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.
权限包括select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
例子: GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';

注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

修改完毕后刷新生效:

flush privileges;

修改字符集为utf-8,避免无法写入中文。

登录查看当前字符集
# mysql -u root -p 
mysql> show variables like'character%';

修改my.cnf配置文件:
[mysqld]下添加
character_set_server=utf8
init_connect='SET NAMES utf8'

Linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写,修改表名不区分大小写

[mysqld]下再添加

lower_case_table_names=1

重启mysql服务即可