(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{ae8A:function(e,t,n){"use strict";n.r(t),n.d(t,"_frontmatter",(function(){return l})),n.d(t,"default",(function(){return b}));var a=n("k1TG"),r=n("8o2o"),o=(n("q1tI"),n("7ljp")),c=n("hhGP"),l=(n("qKvR"),{});void 0!==l&&l&&l===Object(l)&&Object.isExtensible(l)&&!l.hasOwnProperty("__filemeta")&&Object.defineProperty(l,"__filemeta",{configurable:!0,value:{name:"_frontmatter",filename:"src/pages/docs/Connecting to Databases/docker-add-drivers.mdx"}});var s={_frontmatter:l},i=c.a;function b(e){var t=e.components,n=Object(r.a)(e,["components"]);return Object(o.b)(i,Object(a.a)({},s,n,{components:t,mdxType:"MDXLayout"}),Object(o.b)("h2",{id:"adding-new-database-drivers-in-docker"},"Adding New Database Drivers in Docker"),Object(o.b)("p",null,"Superset requires a Python database driver to be installed for each additional type of database you\nwant to connect to. When setting up Superset locally via ",Object(o.b)("inlineCode",{parentName:"p"},"docker-compose"),", the drivers and packages\ncontained in\n",Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"https://github.com/apache/superset/blob/master/requirements.txt"}),"requirements.txt")," and\n",Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"https://github.com/apache/superset/blob/master/requirements-dev.txt"}),"requirements-dev.txt"),"\nwill be installed automatically."),Object(o.b)("p",null,"In this section, we'll walk through how to install the MySQL connector library. The connector\nlibrary installation process is the same for all additional libraries and we'll end this section\nwith the recommended connector library for each database."),Object(o.b)("h3",{id:"1-determine-the-driver-you-need"},"1. Determine the driver you need"),Object(o.b)("p",null,"To figure out how to install the ",Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"/docs/databases/installing-database-drivers"}),"database driver")," of your choice."),Object(o.b)("p",null,"In the example, we'll walk through the process of installing a MySQL driver in Superset."),Object(o.b)("h3",{id:"2-install-mysql-driver"},"2. Install MySQL Driver"),Object(o.b)("p",null,"As we are currently running inside of a Docker container via ",Object(o.b)("inlineCode",{parentName:"p"},"docker compose"),", we cannot simply run\n",Object(o.b)("inlineCode",{parentName:"p"},"pip install mysqlclient")," on our local shell and expect the drivers to be installed within the\nDocker containers for superset."),Object(o.b)("p",null,"In order to address this, the Superset ",Object(o.b)("inlineCode",{parentName:"p"},"docker compose")," setup comes with a mechanism for you to\ninstall packages locally, which will be ignored by Git for the purposes of local development. Please\nfollow these steps:"),Object(o.b)("p",null,"Create ",Object(o.b)("inlineCode",{parentName:"p"},"requirements-local.txt")),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{}),"# From the repo root...\ntouch ./docker/requirements-local.txt\n")),Object(o.b)("p",null,"Add the driver selected in step above:"),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{}),'echo "mysqlclient" >> ./docker/requirements-local.txt\n')),Object(o.b)("p",null,"Rebuild your local image with the new driver baked in:"),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{}),"docker-compose build --force-rm\n")),Object(o.b)("p",null,"After the rebuild is complete, which make take a few minutes, relaunch:"),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{}),"docker-compose up\n")),Object(o.b)("h3",{id:"3-connect-to-mysql"},"3. Connect to MySQL"),Object(o.b)("p",null,"Now that you've got a MySQL driver installed locally, you should be able to test it out."),Object(o.b)("p",null,"We can now create a Datasource in Superset that can be used to connect to a MySQL instance. Assuming\nyour MySQL instance is running locally and can be accessed via localhost, use the following\nconnection string in “SQL Alchemy URI”, by going to Sources > Databases > + icon (to add a new\ndatasource) in Superset."),Object(o.b)("p",null,"For Docker running in Linux:"),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{}),"mysql://mysqluser:mysqluserpassword@localhost/example?charset=utf8\n")),Object(o.b)("p",null,"For Docker running in OSX:"),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{}),"mysql://mysqluser:mysqluserpassword@docker.for.mac.host.internal/example?charset=utf8\n")),Object(o.b)("p",null,"Then click “Test Connection”, which should give you an “OK” message. If not, please look at your\nterminal for error messages, and reach out for help."),Object(o.b)("p",null,"You can repeat this process for every database you want superset to be able to connect to."))}void 0!==b&&b&&b===Object(b)&&Object.isExtensible(b)&&!b.hasOwnProperty("__filemeta")&&Object.defineProperty(b,"__filemeta",{configurable:!0,value:{name:"MDXContent",filename:"src/pages/docs/Connecting to Databases/docker-add-drivers.mdx"}}),b.isMDXComponent=!0}}]);
//# sourceMappingURL=component---src-pages-docs-connecting-to-databases-docker-add-drivers-mdx-f0c3fbe2726d9b857381.js.map