首页 > 代码库 > Linux mysql数据库搭建
Linux mysql数据库搭建
设共享软件包地址192.168.80.10
setenforce 0
service iptables stop
1.共享软件包
mount.cifs //192.168.80.10/r /media/ 匿名访问共享文件夹
cd /media/
ls 查看是否挂载成功了
tar xzvf mysql-5.5.24.tar.gz -C /opt/ 解压至/opt/
cd /opt/ mysql-5.5.24
mount /dec/cdrom /mnt
yum install cmake -y 安装cmake
useradd mysql -s /sbin/nologin 添加可以登录mysql用户,但不能登录系统
mkdir -p /usr/local/mysql
执行yum install -y ncurses-devel 查看是否安装此软件包
执行以下脚本:
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ 安装路径
-DMYSQL_DATADIR=/home/mysql/ \ 数据文件
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_SSL=system \
-DMYSQL_TCP_PORT=3306 \
-DENABLE_DOWNLOADS=1 \
-DWITH_SSL=bundled
(注意:若安装前未执行yum install -y ncurses-devel 命令,有可能会报错。
此时,执行上条命令解决问题,并且执行rm CMakeCache.txt删除缓存,再重新执行cmake)
若未报错,执行make
若未报错,执行make install
chown -R mysql.mysql /usr/local/mysql 改变mysql的权限
export PATH=$PATH:/usr/local/mysql/bin/ 初始化环境变量
(注意,这里初始化是临时的,若想开机自运行,则执行
vi ~/.bash_profile
添加一条命令
PATH=$PATH:/usr/local/mysql/bin/)
cp support-files/my-medium.cnf /etc/my.cnf //建立配置文件
cp support-files/mysql.server /etc/init.d/mysqld
添加系统服务,将mysql.server脚本文件复制到/etc/init.d/目录下,改名为 mysqld
chmod 755 /etc/init.d/mysqld 设置执行权限
chkconfig --add /etc/init.d/mysqld 添加/etc/init.d/myspld到 chkconfig里,用service命令来管理(service mysql)
chkconfig mysqld --level 235 on
初始化脚本mysql_install_db位于安装目录的scripts文件夹中
/usr/local/mysql/scripts/mysql_install_db \
--user=mysql \ 指定用户为mysql
--ldata=http://www.mamicode.com/var/lib/mysql / 链接文件是/var/lib/mysql
--basedir=/usr/local/mysql \ 基本目录,/usr/local/mysq
--datadir=/home/mysql 数据目录为/home/mysql
ln -s /var/lib/mysql/mysql.sock /home/mysql/mysql.sock
vi /etc/init.d/mysqld
修改以下两个参数:
basedir=/usr/local/mysql
datadir=/home/mysql
保存
source /root/.bash_profile 立刻加载配置文件
此时,所有配置文件已修改完毕,
执行service mysqld start 启动服务
netstat -tnl | grep 3306 可以检查3306端口mysqld服务的运行状态
2.调试mysqld
mysql -u root //登录数据库
-------查看命令----------
mysql> show databases;
mysql> use test;
mysql> show tables;
mysql> describe user; //查看表内容(查看user表里的内容)
----------新增命令-----------
mysql>CREATE DATABASE benet; //创建数据库名为benet
mysql>use benet; //进入benet这个数据库
mysql> CREATE TABLE users (user_name CHAR(16) NOT NULL,
user_passwd CHAR(48) DEFAULT ‘‘, PRIMARY KEY (user_name)); //
创建表名为users
----------------
注释:“user_name”表示字段1名称(也就是表格的第一行),“char
(16)”表示类型,“not null”表示null值不能为空 NO;
“user_passwd”表示字段2名称(也就是表格的第二
行),“char(48)”表示类型,“default ‘‘”表示null可以为空 YES;
“primary key(user_name)”表示primary key(主键名)
-----------
mysql> INSERT INTO users(user_name,user_passwd) VALUES
(‘zhangsan‘, PASSWORD(‘123456‘)); //在users表中插入内容
mysql> INSERT INTO users VALUES(‘lisi‘, PASSWORD(‘654321‘));
//password是用户为密码加密的
mysql> insert into users values(‘sina‘,password(‘123abc‘));
------------删除命令--------------
mysql> DELETE FROM users WHERE user_name=‘lisi‘;
mysql> DROP TABLE users;
mysql> DROP DATABASE benet;
----------更改命令---------
mysql> UPDATE users SET user_passwd=PASSWORD(‘‘) WHERE
user_name=‘lisi‘;
mysql> UPDATE mysql.user SET password=PASSWORD(‘123456‘) WHERE
user=‘root‘;
------------查询命令-----------
mysql> SELECT user,host,password FROM mysql.user WHERE
user=‘‘;
mysql> select * from users; //查看user表里的所有信息
mysql> select user from users; //查看users表里的user这个用户字
段里有哪些用户
mysql>flush privileges; //刷新授权信息,
mysqladmin -u root -p password ‘123456‘ //改的是新密码,要输入
的是旧的密码,在#执行。
Enter password: //输入旧密码
[root@localhost ~]# mysql -u root -p //登录
Enter password: //输入之前改的密码123456
---------------授权命令-------------------
mysql> GRANT select ON auth.* TO ‘tom‘@‘localhost‘ IDENTIFIED
BY ‘123456‘;//新建tom用户密码设置为123456,对其授权只能查询以
auth开头的所有表。
mysql> grant all on benet.* to ‘tom‘@‘192.168.80.4‘identified
by ‘123‘;
mysql>flush privileges;
GRANT语句:专门用来设置数据库用户的访问权限。当指定的用户不存在时
,GRANT语句将会创建新的用户,否则GRNAT
语句用户修改用户信息。语句格式如下:
GRANT 权限列表 ON 库名.表名 TO ‘用户名’@‘来源地
址’【IDENTFIED BY ‘密码’】
mysql> SHOW GRANTS FOR ‘dbuser‘@‘192.168.4.19‘; (例如上面的例
子:SHOW GRANTS FOR ‘tom‘@‘localhost‘;,那个“用户名@来源地址”
要是一样的)
mysql> REVOKE all ON auth.* FROM ‘xiaoqi‘@‘localhost‘;
---------------备份与恢复命令------------------
# mysqldump -u root -p --opt --all-databases > all-data.sql //
备份所有数据库
# mysqldump -u root -p --database benet > benet.sql //备份auth
数据库
# mysqldump -u root -p benet users > b-user.sql //备份mysql的
user表
mysql>create benet;
#mysql -u root -p < benet.sql
# mysql -u root -p mysql < mysql-user.sql //将备份还原到mysql
数据库中。
例子:
mysqldump -u root -p --database user > user.sql //将数据库中名
为user的数据库备份出来(备份user这个数据库)
mysql -u root -p < benet.sql //将备份user数据库名数据库
user.sql还原到数据库中
本文出自 “NE之路” 博客,请务必保留此出处http://332162926.blog.51cto.com/8831013/1534956